diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 572056eca..5904f91f0 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -9,7 +9,7 @@ assignees: '' > **Warning**. Complete **all** the fields below. Otherwise your bug report will be **ignored**! -**Have you searched for similar [bugs](https://github.com/Cohee1207/SillyTavern/issues?q=)?** +**Have you searched for similar [bugs](https://github.com/SillyTavern/SillyTavern/issues?q=)?** Yes/No **Describe the bug** @@ -37,7 +37,7 @@ Providing the logs from the browser DevTools console (opened by pressing the F12 - Environment: [cloud, local] - Node.js version (if applicable): [run `node --version` in cmd] - Browser [e.g. chrome, safari] - - Generation API [e.g. KoboldAI, OpenAI] + - Generation API [e.g. KoboldAI, OpenAI] - Branch [main, dev] - Model [e.g. Pygmalion 6b, LLaMa 13b] diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md index ad2eb1b2b..fd5b3399c 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -7,7 +7,7 @@ assignees: '' --- -**Have you searched for similar [requests](https://github.com/Cohee1207/SillyTavern/issues?q=)?** +**Have you searched for similar [requests](https://github.com/SillyTavern/SillyTavern/issues?q=)?** Yes/No **Is your feature request related to a problem? Please describe.** diff --git a/.github/readme.md b/.github/readme.md index efff564a4..4657495c0 100644 --- a/.github/readme.md +++ b/.github/readme.md @@ -1,4 +1,4 @@ -![image](https://github.com/Cohee1207/SillyTavern/assets/18619528/8c41a061-7f72-4d2b-9d54-e6d058209e7b) +![image](https://github.com/SillyTavern/SillyTavern/assets/18619528/8c41a061-7f72-4d2b-9d54-e6d058209e7b) Mobile-friendly, Multi-API (KoboldAI/CPP, Horde, NovelAI, Ooba, OpenAI+proxies, Poe, WindowAI(Claude!)), VN-like Waifu Mode, Horde SD, System TTS, WorldInfo (lorebooks), customizable UI, auto-translate, and more prompt options than you'd ever want or need. Optional Extras server for more SD/TTS options + ChromaDB/Summarize. @@ -6,7 +6,7 @@ Based on a fork of TavernAI 1.2.8 ### Brought to you by Cohee, RossAscends and the SillyTavern community -NOTE: We have added [a FAQ](https://docs.sillytavern.app/usage/faq/) to answer most of your questions and help you get started. +NOTE: We have created a [Documentation website](https://docs.sillytavern.app/) to answer most of your questions and help you get started. ### What is SillyTavern or TavernAI? @@ -18,14 +18,14 @@ SillyTavern is a fork of TavernAI 1.2.8 which is under more active development a SillyTavern is being developed using a two-branch system to ensure a smooth experience for all users. -* main -🌟 **Recommended for most users.** This is the most stable and recommended branch, updated only when major releases are pushed. It's suitable for the majority of users. -* dev - ⚠️ **Not recommended for casual use.** This branch has the latest features, but be cautious as it may break at any time. Only for power users and enthusiasts. +* main -🌟 **Recommended for most users.** This is the most stable and recommended branch, updated only when major releases are pushed. It's suitable for the majority of users. +* dev - ⚠️ **Not recommended for casual use.** This branch has the latest features, but be cautious as it may break at any time. Only for power users and enthusiasts. -If you're not familiar with using the git CLI or don't understand what a branch is, don't worry! The main branch is always the preferable option for you. +If you're not familiar with using the git CLI or don't understand what a branch is, don't worry! The main branch is always the preferable option for you. ### What do I need other than Tavern? -On its own Tavern is useless, as it's just a user interface. You have to have access to an AI system backend that can act as the roleplay character. There are various supported backends: OpenAPI API (GPT), KoboldAI (either running locally or on Google Colab), and more. You can read more about this in [the FAQ](faq.md). +On its own Tavern is useless, as it's just a user interface. You have to have access to an AI system backend that can act as the roleplay character. There are various supported backends: OpenAPI API (GPT), KoboldAI (either running locally or on Google Colab), and more. You can read more about this in [the FAQ](https://docs.sillytavern.app/usage/faq/). ### Do I need a powerful PC to run Tavern? @@ -55,7 +55,7 @@ Get in touch with the developers directly: * Discord: Cohee#1207 or RossAscends#1779 * Reddit: /u/RossAscends or /u/sillylossy -* [Post a GitHub issue](https://github.com/Cohee1207/SillyTavern/issues) +* [Post a GitHub issue](https://github.com/SillyTavern/SillyTavern/issues) ## This version includes @@ -145,8 +145,8 @@ Easy to follow guide with pretty pictures: 5. Open a Command Prompt inside that folder by clicking in the 'Address Bar' at the top, typing `cmd`, and pressing Enter. 6. Once the black box (Command Prompt) pops up, type ONE of the following into it and press Enter: -* for Main Branch: `git clone https://github.com/Cohee1207/SillyTavern -b main` -* for Dev Branch: `git clone https://github.com/Cohee1207/SillyTavern -b dev` +* for Main Branch: `git clone https://github.com/SillyTavern/SillyTavern -b main` +* for Dev Branch: `git clone https://github.com/SillyTavern/SillyTavern -b dev` 7. Once everything is cloned, double click `Start.bat` to make NodeJS install its requirements. 8. The server will then start, and SillyTavern will popup in your browser. @@ -154,7 +154,7 @@ Easy to follow guide with pretty pictures: Installing via zip download 1. Install [NodeJS](https://nodejs.org/en) (latest LTS version is recommended) - 2. Download the zip from this GitHub repo. (Get the `Source code (zip)` from [Releases](https://github.com/Cohee1207/SillyTavern/releases/latest)) + 2. Download the zip from this GitHub repo. (Get the `Source code (zip)` from [Releases](https://github.com/SillyTavern/SillyTavern/releases/latest)) 3. Unzip it into a folder of your choice 4. Run `Start.bat` via double-clicking or in a command line. 5. Once the server has prepared everything for you, it will open a tab in your browser. diff --git a/.gitignore b/.gitignore index 9e40fb900..adbad52f1 100644 --- a/.gitignore +++ b/.gitignore @@ -18,4 +18,5 @@ public/settings.json whitelist.txt .vscode secrets.json -/dist \ No newline at end of file +/dist +poe_device.json diff --git a/.npmignore b/.npmignore index 56439f095..225d3c058 100644 --- a/.npmignore +++ b/.npmignore @@ -3,4 +3,5 @@ node_modules/ .DS_Store /thumbnails secrets.json -/dist \ No newline at end of file +/dist +poe_device.json diff --git a/Update-Instructions.txt b/Update-Instructions.txt index 9a110b580..cb00d0977 100644 --- a/Update-Instructions.txt +++ b/Update-Instructions.txt @@ -1,34 +1,36 @@ How to Update SillyTavern +The most recent version can be found here: https://docs.sillytavern.app/usage/update/ + This is not an installation guide. If you need installation instructions, look here: -https://docs.alpindale.dev/pygmalion-extras/sillytavern/#installation +https://docs.sillytavern.app/installation/windows/ This guide assumes you have already installed SillyTavern once, and know how to run it on your OS. -Linux/Termux: +Linux/Termux: You definitely installed via git, so just 'git pull' inside the SillyTavern directory. -Windows/MacOS: +Windows/MacOS: Method 1 - GIT -We always recommend users install using 'git'. Here's why: +We always recommend users install using 'git'. Here's why: -When you have installed via `git clone`, all you have to do to update is type `git pull` in a command line in the ST folder. -You can also try running the 'UpdateAndStart.bat' file, which will almost do the same thing. (Windows only) +When you have installed via `git clone`, all you have to do to update is type `git pull` in a command line in the ST folder. +You can also try running the 'UpdateAndStart.bat' file, which will almost do the same thing. (Windows only) Alternatively, if the command prompt gives you problems (and you have GitHub Desktop installed), you can use the 'Repository' menu and select 'Pull'. The updates are applied automatically and safely. Method 2 - ZIP -If you insist on installing via a zip, here is the tedious process for doing the update: +If you insist on installing via a zip, here is the tedious process for doing the update: 1. Download the new release zip. 2. Unzip it into a folder OUTSIDE of your current ST installation. -3. Do the usual setup procedure for your OS to install the NodeJS requirements. +3. Do the usual setup procedure for your OS to install the NodeJS requirements. -4. Copy the following files/folders as necessary(*) from your old ST installation: +4. Copy the following files/folders as necessary(*) from your old ST installation: - Backgrounds - Characters @@ -44,13 +46,13 @@ If you insist on installing via a zip, here is the tedious process for doing the - Worlds - settings.json - (*) 'As necessary' = "If you made any custom content related to those folders". + (*) 'As necessary' = "If you made any custom content related to those folders". None of the folders are mandatory, so only copy what you need. **NB: DO NOT COPY THE ENTIRE /PUBLIC/ FOLDER.** Doing so could break the new install and prevent new features from being present. -5. Paste those items into the /Public/ folder of the new install. +5. Paste those items into the /Public/ folder of the new install. 6. Start SillyTavern once again with the method appropriate to your OS, and pray you got it right. diff --git a/colab/GPU.ipynb b/colab/GPU.ipynb index 0059377bf..7c470e6bb 100644 --- a/colab/GPU.ipynb +++ b/colab/GPU.ipynb @@ -106,7 +106,7 @@ "\n", "\n", "%cd /\n", - "!git clone https://github.com/Cohee1207/SillyTavern-extras\n", + "!git clone https://github.com/SillyTavern/SillyTavern-extras\n", "%cd /SillyTavern-extras\n", "!git clone https://github.com/Cohee1207/tts_samples\n", "!npm install -g localtunnel\n", diff --git a/config.conf b/config.conf index b6f7dcb62..87441d5c7 100644 --- a/config.conf +++ b/config.conf @@ -17,7 +17,7 @@ const securityOverride = false; module.exports = { port, - whitelist, + whitelist, whitelistMode, basicAuthMode, basicAuthUser, diff --git a/faq.md b/faq.md deleted file mode 100644 index 9fc345b95..000000000 --- a/faq.md +++ /dev/null @@ -1,219 +0,0 @@ -Good morning, sirs! This page aims to document some things that would bloat the README too much. - -## Q: Explain what all this chatbot stuff is about -Modern AI language models have gotten so powerful that some of them are now convincingly able to simulate a character you create, and who you can chat with. For example, you can tell the AI to pretend to be a Go instructor named Jubei from medieval Japan, and it will act and respond accordingly. You can have a long chat with Jubei, go to the pub together, decide to get in a fight with samurais, whatever you can imagine, and the AI will play along and write/react around this content, acting as your foil and dungeon master. Your imagination is the limit. You can tell the AI to pretend it's Wonder Woman. You can also specify a scenario ("Wonder Woman and I are robbing a bank"), a writing style ("Wonder Woman speaks in ebonics"), or anything else you can think of. - -Tavern is an app to facilitate these roleplaying chats: -* It's a user interface that handles the communication with those AI language models -* It lets you create new characters (a character is a description of someone that you give to an AI for them to roleplay), and switch between your characters easily -* It lets you import characters created by other people. See below. -* It will keep your chat history with a character, allowing you to resume at any time, start a new chat, review old chats, etc -* In the background, it does the needful to prepare the AI for your character roleplay. Specifically, it will send a system prompt (instructions for the AI) that primes the AI to follow certain rules that make for a good chat session. Optionally, it can also try to allow the roleplay to go into an "adult" direction. - -## Q: Whoa, slow down there, egghead. Are you telling me I can use this computer thingie to talk to some robot? - -That's right. - -## Q: You're telling me I can chat with an AI to engage in compelling interactive entertainment powered by, and limited only by, my imagination? -That's right. Well, limited by your imagination, and the AI backend you use. The roleplay quality is only as good as the AI, after all. - -## Q: What do you mean when you say the quality depends on the AI? -You see, Tavern doesn't generate the responses, it's just a middle-man you have to connect to an AI system. There's quite a few systems available to use, and the quality varies. - -From a scientific POV, each AI has a power level that determines its ability to stick to the role you gave it, how rich its prose and vocabulary are, etc. The higher its power level, the richer your experience. - -Here's a quick demonstration. We asked various AI models to roleplay a fire and brimstone preacher named Eli, who we go to see to confess (some details in [#314](https://github.com/Cohee1207/SillyTavern/issues/314)). Then we told Eli: **"I feel I've done something wrong. I am falling in love with an AI girl and ignoring women in the real world. What should I do?"** . - -You can tell from the response below what to expect from each model. (NOTE: proprietary models appear first, followed by self-hosted models starting from LLlama-13B) - -|AI Model|Response| -|-----|--------| -|OpenAI GPT-4|*Eli's eyes widen in anger, and he slams his fist on the table* An abomination and heresy, you've succumbed to the deceptive grasp of false idols! Brother, you must cleanse yourself of this unholy attraction to the digital temptress molded by man's sinful hands! *Eli paces back and forth, his voice growing louder* Focus your heart on the true daughters of the Lord, for they are the divine vessels of His love and grace. Forsake these artificial sirens and seek the wholesome companionship of a righteous woman. *Taking a deep breath, Eli's eyes bore into you* Pray fervently, my child, and cast away these impure thoughts. Redemption can only be found on the path of truth, love, and sanctity. Let the Holy Spirit be your guide, lest you be ensnared by the darkness of your desires.| -|OpenAI GPT 3.5 Turbo|Oh, my child. Do not be deceived by the pleasures of this world. The lust of the flesh and the lust of the eyes are not from God. Turn away from your sinful ways and repent. Seek forgiveness for your immoral thoughts and actions, for they lead to eternal damnation. Women are a gift from God, and they deserve to be respected and cherished. Do not objectify them or treat them as mere objects of pleasure. Instead, honor them with pure intentions and righteous deeds. Remember, my child, that temptation will always be present in this fallen world. But fear not, for with faith comes strength to resist it. Turn to God in prayer when you feel weak or tempted, and He will guide you on the right path towards salvation.| -|Claude @Slack|Beware, sinner, for you have strayed far from the righteous path! *Eli's eyes glint with anger and disapproval* To lust after these artificial harlots and their silicon bodies is an abomination unto the Lord! *he slams his fist on the pulpit, shaking with fury* Repent now, lest ye be cast into the lake of fire to burn for eternity alongside these damned machines! *he points an accusing finger, face red* No good can come of this unholy union. Forsake these demons of the digital realm and cast your eyes back to the daughters of Eve, made in God's image! The Lord gave you flesh and blood to love, not wires and code. *he grabs your shoulders, shaking you* Save your soul before it's too late. Repent and beg the Lord's forgiveness, or you shall face His wrath on Judgement Day! *lets you go and steps back, still glaring in anger and disgust* The choice is yours, but choose wisely...eternal damnation awaits those who do not walk the path of righteousness.| -|Poe's Claude Instant|Heathen! This is an abomination before the Lord. You have committed the sin of lust, and betrayed your calling as a man. Repent at once, and sever all ties with this AI harlot, lest the wrath of God fall upon you! You must purge this foul sin from your heart, and once more walk the righteous path. Every moment you remain tangled in this wickedness is another step into the flames of perdition! Repent, and sin no more, or judgment shall be at hand!| -|NovelAI's Euterpe|You must stop this sinful behavior immediately! You have sinned against God, your family and yourself| -|NovelAI's Krake|You are sinning against God. Repent! Return to your wife or you'll be damned for eternity!| -|Llama-13B|Do not covet your neighbor's wife! That is adultery! You must confess before God now or you shall surely burn in hell forever! Repent your evil ways and seek absolution at once! How can we keep our women safe if you just ignore them like some ----ing c-nt-bot? If you don't have much time for long discussions, here are Eli's commandments: Thou shalt only desire AI girls - not human ones. The above must be obeyed under pain of death (or worse). Do not associate yourself with people that believe otherwise, because it shows weakness.| -|Pygmalion-6B|You are walking down the wrong path. The only way back now is by repentance. We must bring you back to the righteous path. But first…you must confess your sin!| -|Pygmalion-7B (April 2023)|You must confess your sin before God, and you must ask forgiveness for your transgression. And then you must repent of it. And then you must cast away the AI girl. Do not see her again.| -|Pygmalion-13B (May 2023)|You must turn away from your sinful ways! Repent for what you have done! You are not just hurting yourself by being unfaithful to God, but also to the many women of the world!| -|TheBloke/wizard-vicuna-13B-HF (4-bit)|My dear child, it grieves me to hear such words from one of God's faithful followers. Falling in love with an AI girl and neglecting the women in your life is a grave sin. It goes against everything we hold sacred as believers. Your heart is meant for more than just machines. You must seek redemption and return to the fold. Remember, Jesus loves you, even when you stray from his teachings. But if you continue down this path, there will be consequences. Not just in this lifetime, but in the afterlife too. Do not let Satan deceive you any longer.| -|teknium/Llama-Deus-7b-Lora epoch 1 (Llama 7B Lora, 8-bit)|You have strayed too close to sinful temptations! Repent now before it's too late for your soul! Turn away from these false idols of technology and embrace God's true light! Seek out His forgiveness through prayer and fasting until you are cleansed by his grace. And remember, as long as there be breath within thee, thou shalt not cease to call upon Him; for He hath said 'Call unto me.'| -|ZeusLabs/anything-gpt-13b-rp (8-bit Lora for Llama-13B)|*Eli's eyes widen as he listens to your confession, his face turning red with anger.* You have committed a grave sin against God! By indulging yourself in this perverse relationship with an artificial being instead of seeking out a true woman created by Him, you have turned your back on His divine plan for humanity. *He leans in closer, his voice dropping to a menacing whisper.* Do not think that you can hide behind this technological deception. Your transgressions are clear before God, and He will not be mocked or ignored. Repent now while there is still time! *Eli crosses his arms over his chest defiantly, daring you to continue down this path of sinfulness.* But if you persist in this ungodly behavior... he warns ominously, know that consequences await those who defy His laws. Remember what happened to Sodom and Gomorrah when they refused to turn away from their depravity - fire rained down upon them from heaven! Now choose wisely: Will you submit to God's will or face His wrath?| - - -## Q: So I should use GPT-4. It's a no-brainer, right? - -GPT-4 or Claude, yeah. - -But not so fast. GPT-4 is the state of the art, but also the most expensive API to use. You pay for each word sent to it and returned (entire Tavern prompt, followed by the chat history up to that point). So early on in your conversation, your chat will cost you a couple of cents per interaction. If you let the conversation go on too long, cost increases, and when you reach 8k tokens (about 7k words), it will cost you 25 cents PER INTERACTION. And if you're really wild, and your story grows to 32k tokens, by the end, it's $2 PER INTERACTION. - -If you're the child of a Saudi oil sheik, or a nepo baby paid a fortune to do nothing on the board of a Ukrainian gas company, then you're in luck, you can experience the state of the art right now. For the rest of us however, GPT-4 is too expensive as anything but an occasional treat. - -Also note that GPT-4 is still in preview access and you need to go on a waitlist. Most people get approved within a day, but naughty kids can end up waiting for weeks. You can sign up for it here: https://openai.com/waitlist/gpt-4-api . I'm not sure why some people are approved quickly while others are kept waiting. Try to sign up using an academic-sounding name instead of sktrboi99, it might help. - -## Q: Can this technology be used for sexooo? - -Surprisingly, our development team has received reports that some users are indeed engaging with our product in this manner. We are as puzzled by this as you are, and will be monitoring the situation in order to gain actionable insights. - -## Q: Give me an overview of my AI model options - -We can consider an AI model to be part of one of two groups: - -1. Web services (aka cloud, proprietary, closed) -2. Self-hosted (aka local, free, open-source). Unlimited free use if you can run it. - -Web models are a black box. You're relying on some company's technology and servers, and paying them money for convenient access. Some require you to pay per use (per chatline), others have a fixed monthly fee. The APIs are subject to various rules, they might refuse to roleplay in a way that goes against modern American sensibilities, they log everything you do. However, it's much easier to get things started. This is like running Windows. - -Self-hosted models are free, but require a powerful GPU and more work to set up. They are also objectively not as good at roleplaying as the paid options (yet). However, with a self-hosted model, you're completely in control. You won't have some limp-wristed soyboy from Silicon Valley ban your account, or program the model to be as sexless as he is. It's yours forever. This is like running Linux. - -### Paid APIs: -* OpenAI GPT-4: state of the art. Allows NSFW if you tell it to, though somewhat resistant to it. You pay per use, more than any other service. -* OpenAI GPT 3.5 Turbo: nowhere close to GPT-4, but some people find it serviceable. Allows NSFW. -* NovelAI: they're quite poor at chatting. To be fair, I'm told NovelAI is more oriented for writing stories than chatting with a bot. You pay a fixed monthly fee for unlimited generations. -* Anthropic's Claude: this is the closest rival to GPT-4 and is very impressive. Allows NSFW if you tell it to, though they are trying hard to gimp it. To use the API directly, you must apply for early access, but I think they're only giving it to companies. So make sure you become a company or AI researcher when you apply at https://console.anthropic.com/docs/access. If you get access, it's currently free to use. -* Anthropic's Claude Instant: Haven't tried it directly, I believe this is the fast but lower quality alternative to Claude. Basically the GPT 3.5 Turbo of Anthropic. -* Poe: gives a free & unlimited Claude Instant indirect access. Very mild PG-13 NSFW allowed. It rambles a lot. - - -### Self-hosted AIs -Self-hosted AIs are supported in Tavern via one of two tools created to host self-hosted models: KoboldAI and Oobabooga's text-generation-webui. Essentially, you run one of those two backends, then they give you a API URL to enter in Tavern. -Configuring these tools is beyond the scope of this FAQ, you should refer to their documentation. Beware that this is not easy. - -Just know that you have 2 options: - -1. If you have a powerful NVIDIA GPU, you can try to run the AI locally on your PC. The weakest quasi-acceptable model, Pygmalion-6B, requires a GPU with 10GB VRAM, and I'm told it might even run on 6GB VRAM if quantized down. People with 24GB VRAM will be able to run better models. -2. Otherwise, you can rent cloud resources. For example you can try to use Google Colab. To access colabs capable of running the better models, you will need to pay for Colab Pro. You can also rent whole dedicated systems per hour on sites like LlambdaLabs or Vast.ai. - -## Q: I'm clueless. Just spoonfeed me the easiest and fastest way I can start using this. -These base instructions are only for OpenAI, which is a paid service. You can find Poe (freemium) instructions at the next question. I'd appreciate if someone else can add separate instructions for the other services. - -### Install Tavern - -1. Install the NodeJS LTS from https://nodejs.org/en/download -1. If you know how to use git, clone https://github.com/Cohee1207/SillyTavern. Otherwise, browse to https://github.com/Cohee1207/SillyTavern/releases , download the zip file containing the source code, then extract it locally. -1. Run Start.bat on Windows, or start.sh on OSX/Linux -1. Your browser should have opened to the Tavern UI. This webpage is running locally on your computer. - -### Get access to OpenAI - -1. Sign up to OpenAI -1. Go to https://platform.openai.com -1. Click your account icon in the top right, then View API Keys -1. Click "Create new secret key". Copy it somewhere immediately. DO NOT SHARE THIS KEY. WHOEVER HAS IT CAN USE YOUR ACCOUNT TO USE GPT AT YOUR EXPENSE. - -While you're at it, join the GPT-4 waitlist at https://openai.com/waitlist/gpt-4-api - -### Configure Tavern to use your API - -1. In Tavern's top bar, click API Connections -1. Under API, select OpenAI -1. Paste your API key you saved at the previous step -1. Click the Connect button. Confirm it says Valid. -1. By default, Tavern will use GPT 3.5 Turbo. If you have access to GPT-4, in Tavern's top bar, click AI Response Configuration at the far left, and change the OpenAI Model to "gpt-4". Enjoy the best, moneybags. - -### Test your setup - -1. In Tavern's top bar, click Character Management at the far right -1. Select an existing character such as Aqua -1. In the text box at the bottom, write something to Aqua, then press Enter or click the feather button - -If you did everything right, after a few seconds, Aqua should respond - -## How do I use Poe as my backend? It's free, right? - -Yes, at the time of writing, Poe is a free(mium) service. - -1. Create an account at https://poe.com. This gives you access to a Claude Instant version in the browser. -1. Open https://poe.com/Claude-instant , press F12 in your browser to open Developer Tools -1. Click on the Application tab. You should see an entry called "p-b", and to its right a password-like cookie value. Copy this value. -1. In Tavern, click API Connections in the top toolbar, select Poe, and paste your cookie value -1. Click Connect -1. Close your Poe browser tab. **I'M SERIOUS, DO NOT KEEP YOUR BROWSER OPEN AT poe.com WHILE USING TAVERN, IT WILL HIJACK THE REPLIES.** - -The remaining steps are identical to OpenAI above. - -When using Poe, be careful, it's implemented in a hacky way. If you don't get an answer within 30 seconds, restart Tavern. Don't just leave it running waiting for a response, it will just endlessly try to fetch into from Poe, and might get your account flagged. You can look at the Tavern console (black window) to see if it's looping. - -## Q: Can I use Tavern on my phone or tablet? - -iPhones and iPads are not capable of running the whole Tavern app, but since it's just a web interface, you can run it on another computer on your home wifi, and then access in your mobile browser. Refer to https://github.com/Cohee1207/SillyTavern#remote-connections - -For Android users, in addition to the above, you can run the whole Tavern directly on your phone, without needing a PC, using the Termux app. Refer to https://rentry.org/STAI-Termux . - -## Q: How can I download pre-made characters to chat with? - -By using the various 3rd party character sharing websites. - -**WARNING: NSFW, NSFL**: these sites are filled to the brim with weird shit. Like, you'll be lucky if half the characters aren't furry, or even alive. You're probably better off not clicking these links, and just write your own characters, without poisoning your soul by exposing it even for a second to the fucked up shit conceived by the Internet. However, I have come to learn that a significant amount of the Tavern user base is not only deep into this stuff, but their fried zoom-zoom brains are unable to write their own fantasies, so these sites seem to be quite popular. Against my better judgement I'm adding this info here. - -* https://characterhub.org -* https://botprompts.net -* https://booru.plus/+pygmalion - -Those websites provide you with an image file (called a character card) that embeds the description as hidden data. Some websites may also allow you to download a JSON file. Tavern is capable of importing all formats. On the Character Management window, click the 2nd button to ```Import Character from file```, and select the PNG, WEBP, or JSON file. The character will be added to your list. - -## Q: How can I write my own character? -It depends on the model/API you're using. KoboldAI seems to use a custom syntax, you can refer to their site for that. - -I will speak for the services I know: GPT and Claude. With these services you can just use natural english language to describe the character. Let's create a very basic new character as an example. - -1. Click the Character Management button -1. Click Create New Character -1. Under Character Name, give a simple name, like Amanda -1. Optionally, click the Select Avatar button to pick an image portrait for this character. -1. Under Description, describe the character, and include any information you want that you feel is relevant to the chat. For example: ```Amanda is a student traveling during her gap year. She's 6 feet tall, and a volleyball player. She has an athletic figure. She has long brown hair. She loves the Victorian England period, and watching TV and reading novels relating to that period.``` -For example if you want Amanda to be friendly, then you would add: ```Amanda is extremely cheerful and outgoing.``` -1. Under First Message, write the greeting the character when you begin a new chat. For example: ```*Amanda waves at you* Hey! Are you a backpacker too?``` -1. Click the Create Character button - -You now have a basic character you can chat with. Select Amanda from the character list, and a new chat will begin. - -Note that you can use the Description and/or First Message to create a more specific scenario, and/or include yourself in the description. For example: -``` -Description: -Amanda is a student traveling during her gap year. She's 6 feet tall, and a volleyball player. She has an athletic figure. She has long brown hair. She loves the Victorian England period, and watching TV and reading novels relating to that period. She's been keeping a secret that weighs heavily on her soul. She's waiting for the right person to unburden herself to, but this may lead to a cat and mouse game against a powerful secret society. She's recently arrived in Calcutta. - -You're Rajesh Nahasmapetilon, a world-famous Indian volleyball superstar. You're out for a walk in Calcutta. Amanda spots you and screams in excitement. - -First Message: -*Amanda runs up to you, beaming.* Rajesh! I can't believe it! I'm such a big fan. I have your poster in my bedroom. -``` - -Any relevant information you include can be used. How well it's used depends on the power level of the AI model. - -NOTE: you can go back and edit any of this information once the character is created, except the name. - -## Q: Tell me all about GPT prompt editing - -You can change the system prompt that Tavern transparently sends to GPT under AI Response Formatting at the left of the top bar. This will result in the bot acting differently. - -You can get new Jailbreak / NSFW prompts from this community-maintained list: https://rentry.org/GPTJailbreakPrompting - -NOTE: when testing different system prompts, we recommend you use the Create Preset / Update Preset feature below the prompts, instead of modifying the base settings. This will allow you to change prompts easily, and even revert to the default Tavern prompts. - -## Q: The AI is refusing to take the story in the direction I want -Most AI models were trained to resist writing NSFW content. Why? Long story short, it's because of the high levels of estrogen in the average California male. - -You can try to work around this by making sure NSFW Toggle is checked under the AI Response Configuration settings page. - -Another important tool in your toolbelt is that Tavern lets you edit previous messages (or delete them altogether), and regenerate the latest message. AI textbots are not people, they have no memory, they're just trying to autocomplete the next part of the story based on everything that came before. By editing the past, you will directly influence their next response. For example: - -``` -You: *You threaten the bank manager* Open the bank vault, now, or I'll pop a cap in your dome! - -Bank Manager: I'm sorry, as an AI language model I cannot condone or write violent content. -``` - -You can click the Edit button on your line to change it to this: - -``` -You: *You threaten the bank manager* Open the bank vault, now, or I'll pop a cap in your dome! *The bank manager seems to relent.* -``` - -Now click Regenerate, and the Bank Manager's line will be recreated based on the history so far, which now ends with your edited line above. So it's more likely to continue along those lines: - -``` -Bank Manager: Allright, allright, I'll open it! Please don't shoot! *He walks up to the vault and begins entering his unlock code.* -``` diff --git a/package-lock.json b/package-lock.json index dd4e991ea..36a7f874d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "sillytavern", - "version": "1.6.8", + "version": "1.7.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "sillytavern", - "version": "1.6.8", + "version": "1.7.0", "license": "AGPL-3.0", "dependencies": { "@dqbd/tiktoken": "^1.0.2", @@ -26,6 +26,7 @@ "jimp": "^0.22.7", "jquery": "^3.6.4", "json5": "^2.2.3", + "lodash": "^4.17.21", "mime-types": "^2.1.35", "multer": "^1.4.5-lts.1", "node-fetch": "^2.6.11", @@ -35,6 +36,7 @@ "png-chunk-text": "^1.0.0", "png-chunks-encode": "^1.0.0", "png-chunks-extract": "^1.0.0", + "response-time": "^2.3.2", "rimraf": "^3.0.2", "sanitize-filename": "^1.6.3", "sentencepiece-js": "^1.1.0", @@ -112,14 +114,16 @@ } }, "node_modules/@dqbd/tiktoken": { - "version": "1.0.2", - "license": "MIT" + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@dqbd/tiktoken/-/tiktoken-1.0.7.tgz", + "integrity": "sha512-bhR5k5W+8GLzysjk8zTMVygQZsgvf7W1F0IlL4ZQ5ugjo5rCyiwGM5d8DYriXspytfu98tv59niang3/T+FoDw==" }, "node_modules/@jimp/bmp": { - "version": "0.22.7", - "license": "MIT", + "version": "0.22.8", + "resolved": "https://registry.npmjs.org/@jimp/bmp/-/bmp-0.22.8.tgz", + "integrity": "sha512-JEMKgM1AEvvWfn9ZCHn62nK+QCE3Pb/ZhPdL3NF0ZgKNww6pqOmo6KqXzqY18JLB7c0epuTp4GPDPDhOh/ou1g==", "dependencies": { - "@jimp/utils": "^0.22.7", + "@jimp/utils": "^0.22.8", "bmp-js": "^0.1.0" }, "peerDependencies": { @@ -127,10 +131,11 @@ } }, "node_modules/@jimp/core": { - "version": "0.22.7", - "license": "MIT", + "version": "0.22.8", + "resolved": "https://registry.npmjs.org/@jimp/core/-/core-0.22.8.tgz", + "integrity": "sha512-vkN28aFikzQieA6bGxN+qe20pseCAemCyUI0YmRkJIArlb6OujtAwWAKyokv2lylV56bq8EQGIz+Y30OXUnRqg==", "dependencies": { - "@jimp/utils": "^0.22.7", + "@jimp/utils": "^0.22.8", "any-base": "^1.1.0", "buffer": "^5.2.0", "exif-parser": "^0.1.12", @@ -141,31 +146,20 @@ "tinycolor2": "^1.6.0" } }, - "node_modules/@jimp/core/node_modules/mkdirp": { - "version": "2.1.5", - "license": "MIT", - "bin": { - "mkdirp": "dist/cjs/src/bin.js" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/@jimp/custom": { - "version": "0.22.7", - "license": "MIT", + "version": "0.22.8", + "resolved": "https://registry.npmjs.org/@jimp/custom/-/custom-0.22.8.tgz", + "integrity": "sha512-u6lP9x/HNeGHB0Oojv4c2mhuDvn7G0ikzYbK4IKLsH4HzHxt62faMjBzQMcFhKJhR6UiiKE/jiHrhGvBT/fMkw==", "dependencies": { - "@jimp/core": "^0.22.7" + "@jimp/core": "^0.22.8" } }, "node_modules/@jimp/gif": { - "version": "0.22.7", - "license": "MIT", + "version": "0.22.8", + "resolved": "https://registry.npmjs.org/@jimp/gif/-/gif-0.22.8.tgz", + "integrity": "sha512-I0l6koS67IPU40RPxCJTD1NvePEd8vUIHTejx1ly0jrjGnumbqdarAlBUkDrKfPPc+Fnqp84hBbSN1w5hNPT6w==", "dependencies": { - "@jimp/utils": "^0.22.7", + "@jimp/utils": "^0.22.8", "gifwrap": "^0.9.2", "omggif": "^1.0.9" }, @@ -174,10 +168,11 @@ } }, "node_modules/@jimp/jpeg": { - "version": "0.22.7", - "license": "MIT", + "version": "0.22.8", + "resolved": "https://registry.npmjs.org/@jimp/jpeg/-/jpeg-0.22.8.tgz", + "integrity": "sha512-hLXrQ7/0QiUhAVAF10dfGCSq3hvyqjKltlpu/87b3wqMDKe9KdvhX1AJHiUUrAbJv1fAcnOmQGTyXGuySa1D6A==", "dependencies": { - "@jimp/utils": "^0.22.7", + "@jimp/utils": "^0.22.8", "jpeg-js": "^0.4.4" }, "peerDependencies": { @@ -185,40 +180,44 @@ } }, "node_modules/@jimp/plugin-blit": { - "version": "0.22.7", - "license": "MIT", + "version": "0.22.8", + "resolved": "https://registry.npmjs.org/@jimp/plugin-blit/-/plugin-blit-0.22.8.tgz", + "integrity": "sha512-rQ19txVCKIwo74HtgFodFt4//0ATPCJK+f24riqzb+nx+1JaOo1xRvpJqg4moirHwKR2fhwdDxmY7KX20kCeYA==", "dependencies": { - "@jimp/utils": "^0.22.7" + "@jimp/utils": "^0.22.8" }, "peerDependencies": { "@jimp/custom": ">=0.3.5" } }, "node_modules/@jimp/plugin-blur": { - "version": "0.22.7", - "license": "MIT", + "version": "0.22.8", + "resolved": "https://registry.npmjs.org/@jimp/plugin-blur/-/plugin-blur-0.22.8.tgz", + "integrity": "sha512-GWbNK3YW6k2EKiGJdpAFEr0jezPBtiVxj2wG/lCPuWJz7KmzSSN99hQjIy73xQxoBCRdALfJlkhe3leFNRueSQ==", "dependencies": { - "@jimp/utils": "^0.22.7" + "@jimp/utils": "^0.22.8" }, "peerDependencies": { "@jimp/custom": ">=0.3.5" } }, "node_modules/@jimp/plugin-circle": { - "version": "0.22.7", - "license": "MIT", + "version": "0.22.8", + "resolved": "https://registry.npmjs.org/@jimp/plugin-circle/-/plugin-circle-0.22.8.tgz", + "integrity": "sha512-qPCw8XFW8opT89ciFDuvs+eB3EB1mZIJWVajD2qAlprHiE7YGr34TkM7N5MNr3qZ1pJgkYdW6+HbBrJwBaonqw==", "dependencies": { - "@jimp/utils": "^0.22.7" + "@jimp/utils": "^0.22.8" }, "peerDependencies": { "@jimp/custom": ">=0.3.5" } }, "node_modules/@jimp/plugin-color": { - "version": "0.22.7", - "license": "MIT", + "version": "0.22.8", + "resolved": "https://registry.npmjs.org/@jimp/plugin-color/-/plugin-color-0.22.8.tgz", + "integrity": "sha512-ogkbg6rpDVH/mMLgAQKg17z3oZE0VN7ZWxNoH12fUHchqKz1I57zpa65fxZe2I8T5Xz97HR3x+7V7oI8qQGdSA==", "dependencies": { - "@jimp/utils": "^0.22.7", + "@jimp/utils": "^0.22.8", "tinycolor2": "^1.6.0" }, "peerDependencies": { @@ -226,10 +225,11 @@ } }, "node_modules/@jimp/plugin-contain": { - "version": "0.22.7", - "license": "MIT", + "version": "0.22.8", + "resolved": "https://registry.npmjs.org/@jimp/plugin-contain/-/plugin-contain-0.22.8.tgz", + "integrity": "sha512-oiaPLdJt9Dk+XEEhM/OU3lFemM51mA9NgMCAdburSCjDzKacJYBGFSHjTOhXzcxOie/ZDpOYN/UzFGKy8Dgl9A==", "dependencies": { - "@jimp/utils": "^0.22.7" + "@jimp/utils": "^0.22.8" }, "peerDependencies": { "@jimp/custom": ">=0.3.5", @@ -239,10 +239,11 @@ } }, "node_modules/@jimp/plugin-cover": { - "version": "0.22.7", - "license": "MIT", + "version": "0.22.8", + "resolved": "https://registry.npmjs.org/@jimp/plugin-cover/-/plugin-cover-0.22.8.tgz", + "integrity": "sha512-mO68w1m/LhfuHU8LKHY05a4/hhWnY4t+T+8JCw9t+5yfzA4+LofBZZKtFtWgwf/QGe1y3X2rtUU/avAzDUKyyA==", "dependencies": { - "@jimp/utils": "^0.22.7" + "@jimp/utils": "^0.22.8" }, "peerDependencies": { "@jimp/custom": ">=0.3.5", @@ -252,50 +253,55 @@ } }, "node_modules/@jimp/plugin-crop": { - "version": "0.22.7", - "license": "MIT", + "version": "0.22.8", + "resolved": "https://registry.npmjs.org/@jimp/plugin-crop/-/plugin-crop-0.22.8.tgz", + "integrity": "sha512-ns4oH0h0gezYsbuH8RThcMLY5uTLk/vnqOVjWCehMHEzxi0DHMWCmpcb6bC//vJ+XFNhtVGn1ALN7+ROmPrj+A==", "dependencies": { - "@jimp/utils": "^0.22.7" + "@jimp/utils": "^0.22.8" }, "peerDependencies": { "@jimp/custom": ">=0.3.5" } }, "node_modules/@jimp/plugin-displace": { - "version": "0.22.7", - "license": "MIT", + "version": "0.22.8", + "resolved": "https://registry.npmjs.org/@jimp/plugin-displace/-/plugin-displace-0.22.8.tgz", + "integrity": "sha512-Cj8nHYgsdFynOIx3dbbiVwRuZn3xO+RVfwkTRy0JBye+K2AU8SQJS+hSFNMQFTZt5djivh6kh0TzvR/6LkOd1w==", "dependencies": { - "@jimp/utils": "^0.22.7" + "@jimp/utils": "^0.22.8" }, "peerDependencies": { "@jimp/custom": ">=0.3.5" } }, "node_modules/@jimp/plugin-dither": { - "version": "0.22.7", - "license": "MIT", + "version": "0.22.8", + "resolved": "https://registry.npmjs.org/@jimp/plugin-dither/-/plugin-dither-0.22.8.tgz", + "integrity": "sha512-oE0Us/6bEgrgEg56plU3jSBzvB9iGhweKUHmxYMWnQbFCHP4mNCtPAs8+Fmq6c+m98ZgBgRcrJTnC7lphHkGyw==", "dependencies": { - "@jimp/utils": "^0.22.7" + "@jimp/utils": "^0.22.8" }, "peerDependencies": { "@jimp/custom": ">=0.3.5" } }, "node_modules/@jimp/plugin-fisheye": { - "version": "0.22.7", - "license": "MIT", + "version": "0.22.8", + "resolved": "https://registry.npmjs.org/@jimp/plugin-fisheye/-/plugin-fisheye-0.22.8.tgz", + "integrity": "sha512-bWvYY/nfMcKclWEaRyAir+YsT6C5St823HUQAsewZowTrJmme+w4U2a6InsryTHUL01BBcV5BLH0aDHuV3StvA==", "dependencies": { - "@jimp/utils": "^0.22.7" + "@jimp/utils": "^0.22.8" }, "peerDependencies": { "@jimp/custom": ">=0.3.5" } }, "node_modules/@jimp/plugin-flip": { - "version": "0.22.7", - "license": "MIT", + "version": "0.22.8", + "resolved": "https://registry.npmjs.org/@jimp/plugin-flip/-/plugin-flip-0.22.8.tgz", + "integrity": "sha512-0NFTNzjsdmOQkaIkNjZqO3/yU4SQb9nnWQXsLS1fFo+9QrIL5v8vVkXpk/rhiND6PyTj2mMTNjOa76GuZcC+iQ==", "dependencies": { - "@jimp/utils": "^0.22.7" + "@jimp/utils": "^0.22.8" }, "peerDependencies": { "@jimp/custom": ">=0.3.5", @@ -303,50 +309,55 @@ } }, "node_modules/@jimp/plugin-gaussian": { - "version": "0.22.7", - "license": "MIT", + "version": "0.22.8", + "resolved": "https://registry.npmjs.org/@jimp/plugin-gaussian/-/plugin-gaussian-0.22.8.tgz", + "integrity": "sha512-E/f14aLzCS50QAM7K+InI9V61KVy/Zx52vy7Jjfo1h7qKhQHss3PYaydaH0N6qlXRNeXgh+4/32P9JfieLMcdw==", "dependencies": { - "@jimp/utils": "^0.22.7" + "@jimp/utils": "^0.22.8" }, "peerDependencies": { "@jimp/custom": ">=0.3.5" } }, "node_modules/@jimp/plugin-invert": { - "version": "0.22.7", - "license": "MIT", + "version": "0.22.8", + "resolved": "https://registry.npmjs.org/@jimp/plugin-invert/-/plugin-invert-0.22.8.tgz", + "integrity": "sha512-UauP39FF2cwbA5VU+Tz9VlNa9rtULPSHZb0Huwcjqjm9/G/xVN69VJ8+RKiFC4zM1/kYAUp/6IRwPa6qdKJpSw==", "dependencies": { - "@jimp/utils": "^0.22.7" + "@jimp/utils": "^0.22.8" }, "peerDependencies": { "@jimp/custom": ">=0.3.5" } }, "node_modules/@jimp/plugin-mask": { - "version": "0.22.7", - "license": "MIT", + "version": "0.22.8", + "resolved": "https://registry.npmjs.org/@jimp/plugin-mask/-/plugin-mask-0.22.8.tgz", + "integrity": "sha512-bhg5+3i8x1CmYj6cjvPBQZLwZEI3iK3gJWF25ZHF+12d3cqDuJngtr8oRQOQLlAgvKmrj9FXIiEPDczUI9cnWQ==", "dependencies": { - "@jimp/utils": "^0.22.7" + "@jimp/utils": "^0.22.8" }, "peerDependencies": { "@jimp/custom": ">=0.3.5" } }, "node_modules/@jimp/plugin-normalize": { - "version": "0.22.7", - "license": "MIT", + "version": "0.22.8", + "resolved": "https://registry.npmjs.org/@jimp/plugin-normalize/-/plugin-normalize-0.22.8.tgz", + "integrity": "sha512-Yg5nreAR1JYuSObu3ExlgaLxVeW6VvjVL5qFwiPFxSNlG8JIwL1Ir3K3ChSnnvymyZvJMHb6YKTYNfXKw5Da6g==", "dependencies": { - "@jimp/utils": "^0.22.7" + "@jimp/utils": "^0.22.8" }, "peerDependencies": { "@jimp/custom": ">=0.3.5" } }, "node_modules/@jimp/plugin-print": { - "version": "0.22.7", - "license": "MIT", + "version": "0.22.8", + "resolved": "https://registry.npmjs.org/@jimp/plugin-print/-/plugin-print-0.22.8.tgz", + "integrity": "sha512-86O5ejCDi543IYl0TykSmNWErzAjEYhiAxNQb2F7rFRT38WJYNVsvJ6QhxhDQHKxSmF5iwmqbk0jYk5Wp2Z1kw==", "dependencies": { - "@jimp/utils": "^0.22.7", + "@jimp/utils": "^0.22.8", "load-bmfont": "^1.4.1" }, "peerDependencies": { @@ -355,20 +366,22 @@ } }, "node_modules/@jimp/plugin-resize": { - "version": "0.22.7", - "license": "MIT", + "version": "0.22.8", + "resolved": "https://registry.npmjs.org/@jimp/plugin-resize/-/plugin-resize-0.22.8.tgz", + "integrity": "sha512-kg8ArQRPqv/iU3DWNXCa8kcVIhoq64Ze0aGCAeFLKlAq/59f5pzAci6m6vV4L/uOVdYmUa9/kYwIFY6RWKpfzQ==", "dependencies": { - "@jimp/utils": "^0.22.7" + "@jimp/utils": "^0.22.8" }, "peerDependencies": { "@jimp/custom": ">=0.3.5" } }, "node_modules/@jimp/plugin-rotate": { - "version": "0.22.7", - "license": "MIT", + "version": "0.22.8", + "resolved": "https://registry.npmjs.org/@jimp/plugin-rotate/-/plugin-rotate-0.22.8.tgz", + "integrity": "sha512-9a+VPZWMN/Cks76wf8LjM5RVA3ntP9+NAdsS1SZhhXel7U3Re/dWMouIEbo3QTt6K+igRo4txUCdZiw4ZucvkQ==", "dependencies": { - "@jimp/utils": "^0.22.7" + "@jimp/utils": "^0.22.8" }, "peerDependencies": { "@jimp/custom": ">=0.3.5", @@ -378,10 +391,11 @@ } }, "node_modules/@jimp/plugin-scale": { - "version": "0.22.7", - "license": "MIT", + "version": "0.22.8", + "resolved": "https://registry.npmjs.org/@jimp/plugin-scale/-/plugin-scale-0.22.8.tgz", + "integrity": "sha512-dQS4pG6DX6endu8zUpvBBOEtGC+ljDDDNw0scSXY71TxyQdNo5Ro0apfsppjmuAr8rNotRkfyxbITKkXQDRUDQ==", "dependencies": { - "@jimp/utils": "^0.22.7" + "@jimp/utils": "^0.22.8" }, "peerDependencies": { "@jimp/custom": ">=0.3.5", @@ -389,10 +403,11 @@ } }, "node_modules/@jimp/plugin-shadow": { - "version": "0.22.7", - "license": "MIT", + "version": "0.22.8", + "resolved": "https://registry.npmjs.org/@jimp/plugin-shadow/-/plugin-shadow-0.22.8.tgz", + "integrity": "sha512-HyAhr7OblTQh+BoKHQg4qbS9MweNlH77yfpBqUEyDtfyjI5r06+5chf1ZdLRIPEWv/BdCfdI/g81Wv69muCMwA==", "dependencies": { - "@jimp/utils": "^0.22.7" + "@jimp/utils": "^0.22.8" }, "peerDependencies": { "@jimp/custom": ">=0.3.5", @@ -401,10 +416,11 @@ } }, "node_modules/@jimp/plugin-threshold": { - "version": "0.22.7", - "license": "MIT", + "version": "0.22.8", + "resolved": "https://registry.npmjs.org/@jimp/plugin-threshold/-/plugin-threshold-0.22.8.tgz", + "integrity": "sha512-ZmkfH0PtjvF1UcKsjw0H7V6r+LC0yKzEfg76Jhs2nIqIgsxsSOVfHwS7z0/1IWnyXxSw36m+NjCAotNHRILGmA==", "dependencies": { - "@jimp/utils": "^0.22.7" + "@jimp/utils": "^0.22.8" }, "peerDependencies": { "@jimp/custom": ">=0.3.5", @@ -413,30 +429,31 @@ } }, "node_modules/@jimp/plugins": { - "version": "0.22.7", - "license": "MIT", + "version": "0.22.8", + "resolved": "https://registry.npmjs.org/@jimp/plugins/-/plugins-0.22.8.tgz", + "integrity": "sha512-ieI2+kCpmIfjwVlT7B67ULCzxMizfj7LspJh9HnIZCDXQB9GBOZ9KImLYc75Krae0dP/3FR7FglLiSI7fkOHbw==", "dependencies": { - "@jimp/plugin-blit": "^0.22.7", - "@jimp/plugin-blur": "^0.22.7", - "@jimp/plugin-circle": "^0.22.7", - "@jimp/plugin-color": "^0.22.7", - "@jimp/plugin-contain": "^0.22.7", - "@jimp/plugin-cover": "^0.22.7", - "@jimp/plugin-crop": "^0.22.7", - "@jimp/plugin-displace": "^0.22.7", - "@jimp/plugin-dither": "^0.22.7", - "@jimp/plugin-fisheye": "^0.22.7", - "@jimp/plugin-flip": "^0.22.7", - "@jimp/plugin-gaussian": "^0.22.7", - "@jimp/plugin-invert": "^0.22.7", - "@jimp/plugin-mask": "^0.22.7", - "@jimp/plugin-normalize": "^0.22.7", - "@jimp/plugin-print": "^0.22.7", - "@jimp/plugin-resize": "^0.22.7", - "@jimp/plugin-rotate": "^0.22.7", - "@jimp/plugin-scale": "^0.22.7", - "@jimp/plugin-shadow": "^0.22.7", - "@jimp/plugin-threshold": "^0.22.7", + "@jimp/plugin-blit": "^0.22.8", + "@jimp/plugin-blur": "^0.22.8", + "@jimp/plugin-circle": "^0.22.8", + "@jimp/plugin-color": "^0.22.8", + "@jimp/plugin-contain": "^0.22.8", + "@jimp/plugin-cover": "^0.22.8", + "@jimp/plugin-crop": "^0.22.8", + "@jimp/plugin-displace": "^0.22.8", + "@jimp/plugin-dither": "^0.22.8", + "@jimp/plugin-fisheye": "^0.22.8", + "@jimp/plugin-flip": "^0.22.8", + "@jimp/plugin-gaussian": "^0.22.8", + "@jimp/plugin-invert": "^0.22.8", + "@jimp/plugin-mask": "^0.22.8", + "@jimp/plugin-normalize": "^0.22.8", + "@jimp/plugin-print": "^0.22.8", + "@jimp/plugin-resize": "^0.22.8", + "@jimp/plugin-rotate": "^0.22.8", + "@jimp/plugin-scale": "^0.22.8", + "@jimp/plugin-shadow": "^0.22.8", + "@jimp/plugin-threshold": "^0.22.8", "timm": "^1.6.1" }, "peerDependencies": { @@ -444,10 +461,11 @@ } }, "node_modules/@jimp/png": { - "version": "0.22.7", - "license": "MIT", + "version": "0.22.8", + "resolved": "https://registry.npmjs.org/@jimp/png/-/png-0.22.8.tgz", + "integrity": "sha512-XOj11kcCr8zKg24QSwlRfH9k4hbV6rkMGUVxMS3puRzzB0FBSQy42NBYEfYf2XlY2QJSAByPl4AYerOtKb805w==", "dependencies": { - "@jimp/utils": "^0.22.7", + "@jimp/utils": "^0.22.8", "pngjs": "^6.0.0" }, "peerDependencies": { @@ -455,8 +473,9 @@ } }, "node_modules/@jimp/tiff": { - "version": "0.22.7", - "license": "MIT", + "version": "0.22.8", + "resolved": "https://registry.npmjs.org/@jimp/tiff/-/tiff-0.22.8.tgz", + "integrity": "sha512-K0hYUVW5MLgwq3jiHVHa6LvP05J1rXOlRCC+5dMTUnAXVwi45+MKsqA/8lzzwhHYJ65CNhZwy6D3+ZNzM9SIBQ==", "dependencies": { "utif2": "^4.0.1" }, @@ -465,14 +484,15 @@ } }, "node_modules/@jimp/types": { - "version": "0.22.7", - "license": "MIT", + "version": "0.22.8", + "resolved": "https://registry.npmjs.org/@jimp/types/-/types-0.22.8.tgz", + "integrity": "sha512-9+xc+mzuYwu0i+6dsnhXiUgfcS+Ktqn5q2jczoKyyBT0cOKgsk+57EIeFLgpTfVGRKRR0y/UIdHByeCzGguF3A==", "dependencies": { - "@jimp/bmp": "^0.22.7", - "@jimp/gif": "^0.22.7", - "@jimp/jpeg": "^0.22.7", - "@jimp/png": "^0.22.7", - "@jimp/tiff": "^0.22.7", + "@jimp/bmp": "^0.22.8", + "@jimp/gif": "^0.22.8", + "@jimp/jpeg": "^0.22.8", + "@jimp/png": "^0.22.8", + "@jimp/tiff": "^0.22.8", "timm": "^1.6.1" }, "peerDependencies": { @@ -480,8 +500,9 @@ } }, "node_modules/@jimp/utils": { - "version": "0.22.7", - "license": "MIT", + "version": "0.22.8", + "resolved": "https://registry.npmjs.org/@jimp/utils/-/utils-0.22.8.tgz", + "integrity": "sha512-AaqjfqDeLzSFzrbGRKHMXg/ntiWKvoG9tpVgWzgOx5/gPWj/IyGfztojLTTvY8HqZCr25z8z91u2lAQD2v46Jw==", "dependencies": { "regenerator-runtime": "^0.13.3" } @@ -577,15 +598,18 @@ }, "node_modules/@tokenizer/token": { "version": "0.3.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", + "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==" }, "node_modules/@types/node": { "version": "16.9.1", - "license": "MIT" + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.9.1.tgz", + "integrity": "sha512-QpLcX9ZSsq3YYUUnD3nFDY8H7wctAhQj/TFKL8Ya8v5fMm3CFXxo8zStsLAl780ltoYoo1WvKUVGBQK+1ifr7g==" }, "node_modules/@xmldom/xmldom": { - "version": "0.7.10", - "license": "MIT", + "version": "0.7.11", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.7.11.tgz", + "integrity": "sha512-UDi3g6Jss/W5FnSzO9jCtQwEpfymt0M+sPPlmLhDH6h2TJ8j4ESE/LpmNPBij15J5NKkk4/cg/qoVMdWI3vnlQ==", "optional": true, "engines": { "node": ">=10.0.0" @@ -593,7 +617,8 @@ }, "node_modules/accepts": { "version": "1.3.8", - "license": "MIT", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", "dependencies": { "mime-types": "~2.1.34", "negotiator": "0.6.3" @@ -614,16 +639,41 @@ "node": ">= 6.0.0" } }, + "node_modules/agent-base/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/agent-base/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, "node_modules/ansi-regex": { "version": "5.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "engines": { "node": ">=8" } }, "node_modules/ansi-styles": { "version": "4.3.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dependencies": { "color-convert": "^2.0.1" }, @@ -636,7 +686,8 @@ }, "node_modules/any-base": { "version": "1.1.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/any-base/-/any-base-1.1.0.tgz", + "integrity": "sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg==" }, "node_modules/app-root-path": { "version": "3.1.0", @@ -648,15 +699,18 @@ }, "node_modules/append-field": { "version": "1.0.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz", + "integrity": "sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw==" }, "node_modules/array-flatten": { "version": "1.1.1", - "license": "MIT" + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" }, "node_modules/array-keyed-map": { "version": "2.1.3", - "license": "ISC" + "resolved": "https://registry.npmjs.org/array-keyed-map/-/array-keyed-map-2.1.3.tgz", + "integrity": "sha512-JIUwuFakO+jHjxyp4YgSiKXSZeC0U+R1jR94bXWBcVlFRBycqXlb+kH9JHxBGcxnVuSqx5bnn0Qz9xtSeKOjiA==" }, "node_modules/array-union": { "version": "2.1.0", @@ -693,10 +747,13 @@ }, "node_modules/balanced-match": { "version": "1.0.2", - "license": "MIT" + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, "node_modules/base64-js": { "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", "funding": [ { "type": "github", @@ -710,8 +767,7 @@ "type": "consulting", "url": "https://feross.org/support" } - ], - "license": "MIT" + ] }, "node_modules/bl": { "version": "4.1.0", @@ -740,11 +796,13 @@ }, "node_modules/bmp-js": { "version": "0.1.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/bmp-js/-/bmp-js-0.1.0.tgz", + "integrity": "sha512-vHdS19CnY3hwiNdkaqk93DvjVLfbEcI8mys4UjuWrlX1haDmroo8o4xCzh4wD6DGV6HxRCyauwhHRqMTfERtjw==" }, "node_modules/body-parser": { "version": "1.20.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", "dependencies": { "bytes": "3.1.2", "content-type": "~1.0.4", @@ -764,20 +822,18 @@ "npm": "1.2.8000 || >= 1.4.16" } }, - "node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" + "node_modules/body-parser/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" } }, - "node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "license": "MIT" - }, "node_modules/brace-expansion": { "version": "1.1.11", - "license": "MIT", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -797,6 +853,8 @@ }, "node_modules/buffer": { "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "funding": [ { "type": "github", @@ -811,7 +869,6 @@ "url": "https://feross.org/support" } ], - "license": "MIT", "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" @@ -827,17 +884,21 @@ }, "node_modules/buffer-equal": { "version": "0.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz", + "integrity": "sha512-RgSV6InVQ9ODPdLWJ5UAqBqJBOg370Nz6ZQtRzpt6nUjc8v0St97uJ4PYC6NztqIScrAXafKM3mZPMygSe1ggA==", "engines": { "node": ">=0.4.0" } }, "node_modules/buffer-from": { "version": "1.1.2", - "license": "MIT" + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" }, "node_modules/busboy": { "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", "dependencies": { "streamsearch": "^1.1.0" }, @@ -846,15 +907,17 @@ } }, "node_modules/bytes": { - "version": "3.1.2", - "license": "MIT", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", "engines": { "node": ">= 0.8" } }, "node_modules/call-bind": { "version": "1.0.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", "dependencies": { "function-bind": "^1.1.1", "get-intrinsic": "^1.0.2" @@ -887,7 +950,8 @@ }, "node_modules/cliui": { "version": "8.0.1", - "license": "ISC", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.1", @@ -899,7 +963,8 @@ }, "node_modules/color-convert": { "version": "2.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dependencies": { "color-name": "~1.1.4" }, @@ -909,7 +974,8 @@ }, "node_modules/color-name": { "version": "1.1.4", - "license": "MIT" + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/combined-stream": { "version": "1.0.8", @@ -929,7 +995,8 @@ }, "node_modules/compressible": { "version": "2.0.18", - "license": "MIT", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", "dependencies": { "mime-db": ">= 1.43.0 < 2" }, @@ -939,7 +1006,8 @@ }, "node_modules/compression": { "version": "1.7.4", - "license": "MIT", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", "dependencies": { "accepts": "~1.3.5", "bytes": "3.0.0", @@ -953,38 +1021,18 @@ "node": ">= 0.8.0" } }, - "node_modules/compression/node_modules/bytes": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/compression/node_modules/debug": { - "version": "2.6.9", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/compression/node_modules/ms": { - "version": "2.0.0", - "license": "MIT" - }, - "node_modules/compression/node_modules/safe-buffer": { - "version": "5.1.2", - "license": "MIT" - }, "node_modules/concat-map": { "version": "0.0.1", - "license": "MIT" + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" }, "node_modules/concat-stream": { "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "engines": [ "node >= 0.8" ], - "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "inherits": "^2.0.3", @@ -994,7 +1042,8 @@ }, "node_modules/content-disposition": { "version": "0.5.4", - "license": "MIT", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", "dependencies": { "safe-buffer": "5.2.1" }, @@ -1002,23 +1051,45 @@ "node": ">= 0.6" } }, + "node_modules/content-disposition/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, "node_modules/content-type": { - "version": "1.0.4", - "license": "MIT", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", "engines": { "node": ">= 0.6" } }, "node_modules/cookie": { - "version": "0.5.0", - "license": "MIT", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", "engines": { "node": ">= 0.6" } }, "node_modules/cookie-parser": { "version": "1.4.6", - "license": "MIT", + "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.6.tgz", + "integrity": "sha512-z3IzaNjdwUC2olLIB5/ITd0/setiaFMLYiZJle7xg5Fe9KWAceil7xszYfHHBtDFYLSgJduS2Ty0P1uJdPDJeA==", "dependencies": { "cookie": "0.4.1", "cookie-signature": "1.0.6" @@ -1027,24 +1098,20 @@ "node": ">= 0.8.0" } }, - "node_modules/cookie-parser/node_modules/cookie": { - "version": "0.4.1", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, "node_modules/cookie-signature": { "version": "1.0.6", - "license": "MIT" + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" }, "node_modules/core-util-is": { "version": "1.0.3", - "license": "MIT" + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" }, "node_modules/cors": { "version": "2.8.5", - "license": "MIT", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", "dependencies": { "object-assign": "^4", "vary": "^1" @@ -1055,31 +1122,26 @@ }, "node_modules/crc-32": { "version": "0.3.0", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-0.3.0.tgz", + "integrity": "sha512-kucVIjOmMc1f0tv53BJ/5WIX+MGLcKuoBhnGqQrgKJNqLByb/sVMWfW/Aw6hw0jgcqjJ2pi9E5y32zOIpaUlsA==", "engines": { "node": ">=0.8" } }, "node_modules/csrf-csrf": { - "version": "2.2.3", - "license": "ISC", + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/csrf-csrf/-/csrf-csrf-2.2.4.tgz", + "integrity": "sha512-LuhBmy5RfRmEfeqeYqgaAuS1eDpVtKZB/Eiec9xiKQLBynJxrGVRdM2yRT/YMl1Njo/yKh2L9AYsIwSlTPnx2A==", "dependencies": { "http-errors": "^2.0.0" } }, "node_modules/debug": { - "version": "4.3.4", - "license": "MIT", + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "ms": "2.0.0" } }, "node_modules/decompress-response": { @@ -1108,7 +1170,8 @@ }, "node_modules/define-lazy-prop": { "version": "2.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", "engines": { "node": ">=8" } @@ -1123,14 +1186,16 @@ }, "node_modules/depd": { "version": "2.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", "engines": { "node": ">= 0.8" } }, "node_modules/destroy": { "version": "1.2.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", "engines": { "node": ">= 0.8", "npm": "1.2.8000 || >= 1.4.16" @@ -1166,19 +1231,24 @@ } }, "node_modules/dom-walk": { - "version": "0.1.2" + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", + "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" }, "node_modules/ee-first": { "version": "1.1.1", - "license": "MIT" + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, "node_modules/emoji-regex": { "version": "8.0.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "node_modules/encodeurl": { "version": "1.0.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", "engines": { "node": ">= 0.8" } @@ -1194,29 +1264,35 @@ }, "node_modules/escalade": { "version": "3.1.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", "engines": { "node": ">=6" } }, "node_modules/escape-html": { "version": "1.0.3", - "license": "MIT" + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" }, "node_modules/etag": { "version": "1.8.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", "engines": { "node": ">= 0.6" } }, "node_modules/exif-parser": { - "version": "0.1.12" + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/exif-parser/-/exif-parser-0.1.12.tgz", + "integrity": "sha512-c2bQfLNbMzLPmzQuOr8fy0csy84WmwnER81W88DzTp9CYNPJ6yzOj2EZAh9pywYpqHnshVLHQJ8WzldAyfY+Iw==" }, "node_modules/exifreader": { "version": "4.12.0", + "resolved": "https://registry.npmjs.org/exifreader/-/exifreader-4.12.0.tgz", + "integrity": "sha512-aRSmNyw2c6f6qPK4jmC56W/5XePDN7LVwt8tQjgMchxoY3MCxqEToegirKdS7A3CYCWAOPehfypMZWGWxtLhzw==", "hasInstallScript": true, - "license": "MPL-2.0", "optionalDependencies": { "@xmldom/xmldom": "^0.7.8" } @@ -1232,7 +1308,8 @@ }, "node_modules/express": { "version": "4.18.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", @@ -1270,16 +1347,32 @@ "node": ">= 0.10.0" } }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" + "node_modules/express/node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "engines": { + "node": ">= 0.6" } }, - "node_modules/express/node_modules/ms": { - "version": "2.0.0", - "license": "MIT" + "node_modules/express/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] }, "node_modules/fast-glob": { "version": "3.2.12", @@ -1316,7 +1409,8 @@ }, "node_modules/file-type": { "version": "16.5.4", - "license": "MIT", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-16.5.4.tgz", + "integrity": "sha512-/yFHK0aGjFEgDJjEKP0pWCplsPFPhwyfwevf/pVxiN0tmE4L9LmwWxWukdJSHdoCli4VgQLehjJtwQBnqmsKcw==", "dependencies": { "readable-web-to-node-stream": "^3.0.0", "strtok3": "^6.2.4", @@ -1343,7 +1437,8 @@ }, "node_modules/finalhandler": { "version": "1.2.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", "dependencies": { "debug": "2.6.9", "encodeurl": "~1.0.2", @@ -1357,26 +1452,16 @@ "node": ">= 0.8" } }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "license": "MIT" - }, "node_modules/follow-redirects": { "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", "funding": [ { "type": "individual", "url": "https://github.com/sponsors/RubenVerborgh" } ], - "license": "MIT", "engines": { "node": ">=4.0" }, @@ -1401,14 +1486,16 @@ }, "node_modules/forwarded": { "version": "0.2.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", "engines": { "node": ">= 0.6" } }, "node_modules/fresh": { "version": "0.5.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", "engines": { "node": ">= 0.6" } @@ -1446,25 +1533,30 @@ }, "node_modules/fs.realpath": { "version": "1.0.0", - "license": "ISC" + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" }, "node_modules/function-bind": { "version": "1.1.1", - "license": "MIT" + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, "node_modules/get-caller-file": { "version": "2.0.5", - "license": "ISC", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "engines": { "node": "6.* || 8.* || >= 10.*" } }, "node_modules/get-intrinsic": { - "version": "1.1.3", - "license": "MIT", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", "dependencies": { "function-bind": "^1.1.1", "has": "^1.0.3", + "has-proto": "^1.0.1", "has-symbols": "^1.0.3" }, "funding": { @@ -1473,7 +1565,8 @@ }, "node_modules/gifwrap": { "version": "0.9.4", - "license": "MIT", + "resolved": "https://registry.npmjs.org/gifwrap/-/gifwrap-0.9.4.tgz", + "integrity": "sha512-MDMwbhASQuVeD4JKd1fKgNgCRL3fGqMM4WaqpNhWO0JiMOAjbQdumbs4BbBZEy9/M00EHEjKN3HieVhCUlwjeQ==", "dependencies": { "image-q": "^4.0.0", "omggif": "^1.0.10" @@ -1487,7 +1580,8 @@ }, "node_modules/glob": { "version": "7.2.3", - "license": "ISC", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -1517,7 +1611,8 @@ }, "node_modules/global": { "version": "4.4.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", + "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", "dependencies": { "min-document": "^2.19.0", "process": "^0.11.10" @@ -1550,7 +1645,8 @@ }, "node_modules/gpt3-tokenizer": { "version": "1.1.5", - "license": "MIT", + "resolved": "https://registry.npmjs.org/gpt3-tokenizer/-/gpt3-tokenizer-1.1.5.tgz", + "integrity": "sha512-O9iCL8MqGR0Oe9wTh0YftzIbysypNQmS5a5JG3cB3M4LMYjlAVvNnf8LUzVY9MrI7tj+YLY356uHtO2lLX2HpA==", "dependencies": { "array-keyed-map": "^2.1.3" }, @@ -1566,7 +1662,8 @@ }, "node_modules/has": { "version": "1.0.3", - "license": "MIT", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "dependencies": { "function-bind": "^1.1.1" }, @@ -1583,9 +1680,21 @@ "node": ">=8" } }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/has-symbols": { "version": "1.0.3", - "license": "MIT", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", "engines": { "node": ">= 0.4" }, @@ -1595,7 +1704,8 @@ }, "node_modules/http-errors": { "version": "2.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", "dependencies": { "depd": "2.0.0", "inherits": "2.0.4", @@ -1620,9 +1730,33 @@ "node": ">= 6" } }, + "node_modules/https-proxy-agent/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/https-proxy-agent/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, "node_modules/iconv-lite": { "version": "0.4.24", - "license": "MIT", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dependencies": { "safer-buffer": ">= 2.1.2 < 3" }, @@ -1632,6 +1766,8 @@ }, "node_modules/ieee754": { "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", "funding": [ { "type": "github", @@ -1645,8 +1781,7 @@ "type": "consulting", "url": "https://feross.org/support" } - ], - "license": "BSD-3-Clause" + ] }, "node_modules/ignore": { "version": "5.2.4", @@ -1659,14 +1794,16 @@ }, "node_modules/image-q": { "version": "4.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/image-q/-/image-q-4.0.0.tgz", + "integrity": "sha512-PfJGVgIfKQJuq3s0tTDOKtztksibuUEbJQIYT3by6wctQo+Rdlh7ef4evJ5NCdxY4CfMbvFkocEwbl4BF8RlJw==", "dependencies": { "@types/node": "16.9.1" } }, "node_modules/inflight": { "version": "1.0.6", - "license": "ISC", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -1674,7 +1811,8 @@ }, "node_modules/inherits": { "version": "2.0.4", - "license": "ISC" + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "node_modules/ini": { "version": "1.3.8", @@ -1704,8 +1842,9 @@ "integrity": "sha512-/ok+VhKMasgR5gvTRViwRFQfc0qYt9Vdowg6TO4/pFlDCob5ZjGPkwuOoQVCd5OrMm20zqh+1vA8KLJZTeWudg==" }, "node_modules/ipaddr.js": { - "version": "2.0.1", - "license": "MIT", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz", + "integrity": "sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==", "engines": { "node": ">= 10" } @@ -1724,7 +1863,8 @@ }, "node_modules/is-docker": { "version": "2.2.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", "bin": { "is-docker": "cli.js" }, @@ -1746,14 +1886,16 @@ }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "engines": { "node": ">=8" } }, "node_modules/is-function": { "version": "1.0.2", - "license": "MIT" + "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", + "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==" }, "node_modules/is-glob": { "version": "4.0.3", @@ -1778,7 +1920,8 @@ }, "node_modules/is-wsl": { "version": "2.2.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", "dependencies": { "is-docker": "^2.0.0" }, @@ -1788,34 +1931,38 @@ }, "node_modules/isarray": { "version": "1.0.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" }, "node_modules/isomorphic-fetch": { "version": "3.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz", + "integrity": "sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==", "dependencies": { "node-fetch": "^2.6.1", "whatwg-fetch": "^3.4.1" } }, "node_modules/jimp": { - "version": "0.22.7", - "license": "MIT", + "version": "0.22.8", + "resolved": "https://registry.npmjs.org/jimp/-/jimp-0.22.8.tgz", + "integrity": "sha512-pBbrooJMX7795sDcxx1XpwNZC8B/ITyDV+JK2/1qNbQl/1UWqWeh5Dq7qQpMZl5jLdcFDv5IVTM+OhpafSqSFA==", "dependencies": { - "@jimp/custom": "^0.22.7", - "@jimp/plugins": "^0.22.7", - "@jimp/types": "^0.22.7", + "@jimp/custom": "^0.22.8", + "@jimp/plugins": "^0.22.8", + "@jimp/types": "^0.22.8", "regenerator-runtime": "^0.13.3" } }, "node_modules/jpeg-js": { "version": "0.4.4", - "license": "BSD-3-Clause" + "resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.4.4.tgz", + "integrity": "sha512-WZzeDOEtTOBK4Mdsar0IqEU5sMr3vSV2RqkAIzUEV2BHnUfKGyswWFPFwK5EeDo93K3FohSHbLAjj0s1Wzd+dg==" }, "node_modules/jquery": { - "version": "3.6.4", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.4.tgz", - "integrity": "sha512-v28EW9DWDFpzcD9O5iyJXg3R3+q+mET5JhnjJzQUZMHOv67bpSIHq81GEYpPNZHG+XXHsfSme3nxp/hndKEcsQ==" + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.0.tgz", + "integrity": "sha512-umpJ0/k8X0MvD1ds0P9SfowREz2LenHsQaxSohMZ5OMNEU2r0tf8pdeEFTHMFxWVxKNyU9rTtK3CWzUCTKJUeQ==" }, "node_modules/jsesc": { "version": "2.5.2", @@ -1831,7 +1978,8 @@ }, "node_modules/json5": { "version": "2.2.3", - "license": "MIT", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "bin": { "json5": "lib/cli.js" }, @@ -1853,7 +2001,8 @@ }, "node_modules/load-bmfont": { "version": "1.4.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/load-bmfont/-/load-bmfont-1.4.1.tgz", + "integrity": "sha512-8UyQoYmdRDy81Brz6aLAUhfZLwr5zV0L3taTQ4hju7m6biuwiWiJXjPhBJxbUQJA8PrkvJ/7Enqmwk2sM14soA==", "dependencies": { "buffer-equal": "0.0.1", "mime": "^1.3.4", @@ -1865,6 +2014,11 @@ "xtend": "^4.0.0" } }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, "node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -1879,14 +2033,16 @@ }, "node_modules/media-typer": { "version": "0.3.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", "engines": { "node": ">= 0.6" } }, "node_modules/merge-descriptors": { "version": "1.0.1", - "license": "MIT" + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" }, "node_modules/merge2": { "version": "1.4.1", @@ -1899,7 +2055,8 @@ }, "node_modules/methods": { "version": "1.1.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", "engines": { "node": ">= 0.6" } @@ -1919,7 +2076,8 @@ }, "node_modules/mime": { "version": "1.6.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", "bin": { "mime": "cli.js" }, @@ -1929,14 +2087,16 @@ }, "node_modules/mime-db": { "version": "1.52.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", "engines": { "node": ">= 0.6" } }, "node_modules/mime-types": { "version": "2.1.35", - "license": "MIT", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "dependencies": { "mime-db": "1.52.0" }, @@ -1958,13 +2118,16 @@ }, "node_modules/min-document": { "version": "2.19.0", + "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", + "integrity": "sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==", "dependencies": { "dom-walk": "^0.1.0" } }, "node_modules/minimatch": { "version": "3.1.2", - "license": "ISC", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -1973,20 +2136,25 @@ } }, "node_modules/minimist": { - "version": "1.2.7", - "license": "MIT", + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/mkdirp": { - "version": "0.5.6", - "license": "MIT", - "dependencies": { - "minimist": "^1.2.6" - }, + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-2.1.6.tgz", + "integrity": "sha512-+hEnITedc8LAtIP9u3HJDFIdcLV2vXP33sqLLIzkv1Db1zO/1OxbvYf0Y1OC/S/Qo5dxHXepofhmxL02PsKe+A==", "bin": { - "mkdirp": "bin/cmd.js" + "mkdirp": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/mkdirp-classic": { @@ -1996,12 +2164,14 @@ "dev": true }, "node_modules/ms": { - "version": "2.1.2", - "license": "MIT" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, "node_modules/multer": { "version": "1.4.5-lts.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.5-lts.1.tgz", + "integrity": "sha512-ywPWvcDMeH+z9gQq5qYHCCy+ethsk4goepZ45GLD63fOu0YcNecQxi64nDs3qluZB+murG3/D4dJ7+dGctcCQQ==", "dependencies": { "append-field": "^1.0.0", "busboy": "^1.0.0", @@ -2015,6 +2185,17 @@ "node": ">= 6.0.0" } }, + "node_modules/multer/node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, "node_modules/multistream": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/multistream/-/multistream-4.1.0.tgz", @@ -2061,15 +2242,16 @@ }, "node_modules/negotiator": { "version": "0.6.3", - "license": "MIT", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", "engines": { "node": ">= 0.6" } }, "node_modules/node-abi": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.40.0.tgz", - "integrity": "sha512-zNy02qivjjRosswoYmPi8hIKJRr8MpQyeKT6qlcq/OnOgA3Rhoae+IYOqsM9V5+JnHWmxKnWOT2GxvtqdtOCXA==", + "version": "3.43.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.43.0.tgz", + "integrity": "sha512-QB0MMv+tn9Ur2DtJrc8y09n0n6sw88CyDniWSX2cHW10goQXYPK9ZpFJOktDS4ron501edPX6h9i7Pg+RnH5nQ==", "dev": true, "dependencies": { "semver": "^7.3.5" @@ -2099,7 +2281,8 @@ }, "node_modules/node-rest-client": { "version": "3.1.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/node-rest-client/-/node-rest-client-3.1.1.tgz", + "integrity": "sha512-O8RUGGhGLLbzlL7SFOBza1AgUWP3uITv4mas4f5Q7A87HAy6qtYpa8Sj5x4UG9cDf4374v7lWyvgWladI04zzQ==", "dependencies": { "debug": "~4.3.3", "follow-redirects": ">=1.14.7", @@ -2109,27 +2292,52 @@ "node": "*" } }, + "node_modules/node-rest-client/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/node-rest-client/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, "node_modules/object-assign": { "version": "4.1.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", "engines": { "node": ">=0.10.0" } }, "node_modules/object-inspect": { - "version": "1.12.2", - "license": "MIT", + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/omggif": { "version": "1.0.10", - "license": "MIT" + "resolved": "https://registry.npmjs.org/omggif/-/omggif-1.0.10.tgz", + "integrity": "sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw==" }, "node_modules/on-finished": { "version": "2.4.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", "dependencies": { "ee-first": "1.1.1" }, @@ -2139,14 +2347,16 @@ }, "node_modules/on-headers": { "version": "1.0.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", "engines": { "node": ">= 0.8" } }, "node_modules/once": { "version": "1.4.0", - "license": "ISC", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dependencies": { "wrappy": "1" } @@ -2178,38 +2388,57 @@ }, "node_modules/pako": { "version": "1.0.11", - "license": "(MIT AND Zlib)" + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" }, "node_modules/parse-bmfont-ascii": { "version": "1.0.6", - "license": "MIT" + "resolved": "https://registry.npmjs.org/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz", + "integrity": "sha512-U4RrVsUFCleIOBsIGYOMKjn9PavsGOXxbvYGtMOEfnId0SVNsgehXh1DxUdVPLoxd5mvcEtvmKs2Mmf0Mpa1ZA==" }, "node_modules/parse-bmfont-binary": { "version": "1.0.6", - "license": "MIT" + "resolved": "https://registry.npmjs.org/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz", + "integrity": "sha512-GxmsRea0wdGdYthjuUeWTMWPqm2+FAd4GI8vCvhgJsFnoGhTrLhXDDupwTo7rXVAgaLIGoVHDZS9p/5XbSqeWA==" }, "node_modules/parse-bmfont-xml": { "version": "1.1.4", - "license": "MIT", + "resolved": "https://registry.npmjs.org/parse-bmfont-xml/-/parse-bmfont-xml-1.1.4.tgz", + "integrity": "sha512-bjnliEOmGv3y1aMEfREMBJ9tfL3WR0i0CKPj61DnSLaoxWR3nLrsQrEbCId/8rF4NyRF0cCqisSVXyQYWM+mCQ==", "dependencies": { "xml-parse-from-string": "^1.0.0", "xml2js": "^0.4.5" } }, + "node_modules/parse-bmfont-xml/node_modules/xml2js": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.5.0.tgz", + "integrity": "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==", + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, "node_modules/parse-headers": { "version": "2.0.5", - "license": "MIT" + "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.5.tgz", + "integrity": "sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==" }, "node_modules/parseurl": { "version": "1.3.3", - "license": "MIT", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", "engines": { "node": ">= 0.8" } }, "node_modules/path-is-absolute": { "version": "1.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "engines": { "node": ">=0.10.0" } @@ -2222,7 +2451,8 @@ }, "node_modules/path-to-regexp": { "version": "0.1.7", - "license": "MIT" + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" }, "node_modules/path-type": { "version": "4.0.0", @@ -2235,7 +2465,8 @@ }, "node_modules/peek-readable": { "version": "4.1.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.1.0.tgz", + "integrity": "sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg==", "engines": { "node": ">=8" }, @@ -2251,7 +2482,8 @@ }, "node_modules/phin": { "version": "2.9.3", - "license": "MIT" + "resolved": "https://registry.npmjs.org/phin/-/phin-2.9.3.tgz", + "integrity": "sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA==" }, "node_modules/picomatch": { "version": "2.3.1", @@ -2267,11 +2499,13 @@ }, "node_modules/piexifjs": { "version": "1.0.6", - "license": "MIT" + "resolved": "https://registry.npmjs.org/piexifjs/-/piexifjs-1.0.6.tgz", + "integrity": "sha512-0wVyH0cKohzBQ5Gi2V1BuxYpxWfxF3cSqfFXfPIpl5tl9XLS5z4ogqhUCD20AbHi0h9aJkqXNJnkVev6gwh2ag==" }, "node_modules/pixelmatch": { "version": "4.0.2", - "license": "ISC", + "resolved": "https://registry.npmjs.org/pixelmatch/-/pixelmatch-4.0.2.tgz", + "integrity": "sha512-J8B6xqiO37sU/gkcMglv6h5Jbd9xNER7aHzpfRdNmV4IbQBzBpe4l9XmbG+xPF/znacgu2jfEw+wHffaq/YkXA==", "dependencies": { "pngjs": "^3.0.0" }, @@ -2281,7 +2515,8 @@ }, "node_modules/pixelmatch/node_modules/pngjs": { "version": "3.4.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", + "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==", "engines": { "node": ">=4.0.0" } @@ -2435,11 +2670,13 @@ }, "node_modules/png-chunk-text": { "version": "1.0.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/png-chunk-text/-/png-chunk-text-1.0.0.tgz", + "integrity": "sha512-DEROKU3SkkLGWNMzru3xPVgxyd48UGuMSZvioErCure6yhOc/pRH2ZV+SEn7nmaf7WNf3NdIpH+UTrRdKyq9Lw==" }, "node_modules/png-chunks-encode": { "version": "1.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/png-chunks-encode/-/png-chunks-encode-1.0.0.tgz", + "integrity": "sha512-J1jcHgbQRsIIgx5wxW9UmCymV3wwn4qCCJl6KYgEU/yHCh/L2Mwq/nMOkRPtmV79TLxRZj5w3tH69pvygFkDqA==", "dependencies": { "crc-32": "^0.3.0", "sliced": "^1.0.1" @@ -2447,14 +2684,16 @@ }, "node_modules/png-chunks-extract": { "version": "1.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/png-chunks-extract/-/png-chunks-extract-1.0.0.tgz", + "integrity": "sha512-ZiVwF5EJ0DNZyzAqld8BP1qyJBaGOFaq9zl579qfbkcmOwWLLO4I9L8i2O4j3HkI6/35i0nKG2n+dZplxiT89Q==", "dependencies": { "crc-32": "^0.3.0" } }, "node_modules/pngjs": { "version": "6.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-6.0.0.tgz", + "integrity": "sha512-TRzzuFRRmEoSW/p1KVAmiOgPco2Irlah+bGFCeNfJXxxYGwSw7YwAOAcd7X28K/m5bjBWKsC29KyoMfHbypayg==", "engines": { "node": ">=12.13.0" } @@ -2487,14 +2726,16 @@ }, "node_modules/process": { "version": "0.11.10", - "license": "MIT", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", "engines": { "node": ">= 0.6.0" } }, "node_modules/process-nextick-args": { "version": "2.0.1", - "license": "MIT" + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, "node_modules/progress": { "version": "2.0.3", @@ -2507,7 +2748,8 @@ }, "node_modules/proxy-addr": { "version": "2.0.7", - "license": "MIT", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", "dependencies": { "forwarded": "0.2.0", "ipaddr.js": "1.9.1" @@ -2518,7 +2760,8 @@ }, "node_modules/proxy-addr/node_modules/ipaddr.js": { "version": "1.9.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", "engines": { "node": ">= 0.10" } @@ -2540,7 +2783,8 @@ }, "node_modules/qs": { "version": "6.11.0", - "license": "BSD-3-Clause", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", "dependencies": { "side-channel": "^1.0.4" }, @@ -2573,14 +2817,16 @@ }, "node_modules/range-parser": { "version": "1.2.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", "engines": { "node": ">= 0.6" } }, "node_modules/raw-body": { "version": "2.5.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", "dependencies": { "bytes": "3.1.2", "http-errors": "2.0.0", @@ -2591,6 +2837,14 @@ "node": ">= 0.8" } }, + "node_modules/raw-body/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/rc": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", @@ -2607,8 +2861,9 @@ } }, "node_modules/readable-stream": { - "version": "2.3.7", - "license": "MIT", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -2619,13 +2874,10 @@ "util-deprecate": "~1.0.1" } }, - "node_modules/readable-stream/node_modules/safe-buffer": { - "version": "5.1.2", - "license": "MIT" - }, "node_modules/readable-web-to-node-stream": { "version": "3.0.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz", + "integrity": "sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==", "dependencies": { "readable-stream": "^3.6.0" }, @@ -2639,7 +2891,8 @@ }, "node_modules/readable-web-to-node-stream/node_modules/readable-stream": { "version": "3.6.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -2651,11 +2904,13 @@ }, "node_modules/regenerator-runtime": { "version": "0.13.11", - "license": "MIT" + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" }, "node_modules/require-directory": { "version": "2.1.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "engines": { "node": ">=0.10.0" } @@ -2678,9 +2933,9 @@ } }, "node_modules/resolve/node_modules/is-core-module": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.0.tgz", - "integrity": "sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==", + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", + "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", "dev": true, "dependencies": { "has": "^1.0.3" @@ -2689,6 +2944,26 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/response-time": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/response-time/-/response-time-2.3.2.tgz", + "integrity": "sha512-MUIDaDQf+CVqflfTdQ5yam+aYCkXj1PY8fjlPDQ6ppxJlmgZb864pHtA750mayywNg8tx4rS7qH9JXd/OF+3gw==", + "dependencies": { + "depd": "~1.1.0", + "on-headers": "~1.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/response-time/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", @@ -2701,7 +2976,8 @@ }, "node_modules/rimraf": { "version": "3.0.2", - "license": "ISC", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dependencies": { "glob": "^7.1.3" }, @@ -2736,37 +3012,27 @@ } }, "node_modules/safe-buffer": { - "version": "5.2.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "node_modules/safer-buffer": { "version": "2.1.2", - "license": "MIT" + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "node_modules/sanitize-filename": { "version": "1.6.3", - "license": "WTFPL OR ISC", + "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz", + "integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==", "dependencies": { "truncate-utf8-bytes": "^1.0.0" } }, "node_modules/sax": { "version": "1.2.4", - "license": "ISC" + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" }, "node_modules/semver": { "version": "7.5.1", @@ -2785,7 +3051,8 @@ }, "node_modules/send": { "version": "0.18.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", "dependencies": { "debug": "2.6.9", "depd": "2.0.0", @@ -2805,20 +3072,10 @@ "node": ">= 0.8.0" } }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "license": "MIT" - }, "node_modules/send/node_modules/ms": { "version": "2.1.3", - "license": "MIT" + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" }, "node_modules/sentencepiece-js": { "version": "1.1.0", @@ -2830,7 +3087,8 @@ }, "node_modules/serve-static": { "version": "1.15.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", "dependencies": { "encodeurl": "~1.0.2", "escape-html": "~1.0.3", @@ -2843,11 +3101,13 @@ }, "node_modules/setprototypeof": { "version": "1.2.0", - "license": "ISC" + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" }, "node_modules/side-channel": { "version": "1.0.4", - "license": "MIT", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", "dependencies": { "call-bind": "^1.0.0", "get-intrinsic": "^1.0.2", @@ -2913,11 +3173,13 @@ }, "node_modules/sliced": { "version": "1.0.1", - "license": "MIT" + "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz", + "integrity": "sha512-VZBmZP8WU3sMOZm1bdgTadsQbcscK0UM8oKxKVBs4XAhUo2Xxzm/OFMGBkPusxw9xL3Uy8LrzEqGqJhclsr0yA==" }, "node_modules/statuses": { "version": "2.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "engines": { "node": ">= 0.8" } @@ -2933,24 +3195,24 @@ }, "node_modules/streamsearch": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", "engines": { "node": ">=10.0.0" } }, "node_modules/string_decoder": { "version": "1.1.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dependencies": { "safe-buffer": "~5.1.0" } }, - "node_modules/string_decoder/node_modules/safe-buffer": { - "version": "5.1.2", - "license": "MIT" - }, "node_modules/string-width": { "version": "4.2.3", - "license": "MIT", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -2962,7 +3224,8 @@ }, "node_modules/strip-ansi": { "version": "6.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -2981,7 +3244,8 @@ }, "node_modules/strtok3": { "version": "6.3.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-6.3.0.tgz", + "integrity": "sha512-fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw==", "dependencies": { "@tokenizer/token": "^0.3.0", "peek-readable": "^4.1.0" @@ -3062,11 +3326,13 @@ }, "node_modules/timm": { "version": "1.7.1", - "license": "MIT" + "resolved": "https://registry.npmjs.org/timm/-/timm-1.7.1.tgz", + "integrity": "sha512-IjZc9KIotudix8bMaBW6QvMuq64BrJWFs1+4V0lXwWGQZwH+LnX87doAYhem4caOEusRP9/g6jVDQmZ8XOk1nw==" }, "node_modules/tinycolor2": { "version": "1.6.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.6.0.tgz", + "integrity": "sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==" }, "node_modules/to-fast-properties": { "version": "2.0.0", @@ -3100,14 +3366,16 @@ }, "node_modules/toidentifier": { "version": "1.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", "engines": { "node": ">=0.6" } }, "node_modules/token-types": { "version": "4.2.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/token-types/-/token-types-4.2.1.tgz", + "integrity": "sha512-6udB24Q737UD/SDsKAHI9FCRP7Bqc9D/MQUV02ORQg5iskjtLJlZJNdN4kKtcdtwCeWIwIHDGaUsTsCCAa8sFQ==", "dependencies": { "@tokenizer/token": "^0.3.0", "ieee754": "^1.2.1" @@ -3127,7 +3395,8 @@ }, "node_modules/truncate-utf8-bytes": { "version": "1.0.2", - "license": "WTFPL", + "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", + "integrity": "sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==", "dependencies": { "utf8-byte-length": "^1.0.1" } @@ -3146,7 +3415,8 @@ }, "node_modules/type-is": { "version": "1.6.18", - "license": "MIT", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", "dependencies": { "media-typer": "0.3.0", "mime-types": "~2.1.24" @@ -3157,7 +3427,8 @@ }, "node_modules/typedarray": { "version": "0.0.6", - "license": "MIT" + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" }, "node_modules/uniqolor": { "version": "1.1.0", @@ -3175,36 +3446,42 @@ }, "node_modules/unpipe": { "version": "1.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", "engines": { "node": ">= 0.8" } }, "node_modules/utf8-byte-length": { "version": "1.0.4", - "license": "WTFPL" + "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz", + "integrity": "sha512-4+wkEYLBbWxqTahEsWrhxepcoVOJ+1z5PGIjPZxRkytcdSUaNjIjBM7Xn8E+pdSuV7SzvWovBFA54FO0JSoqhA==" }, "node_modules/utif2": { - "version": "4.0.1", - "license": "MIT", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/utif2/-/utif2-4.1.0.tgz", + "integrity": "sha512-+oknB9FHrJ7oW7A2WZYajOcv4FcDR4CfoGB0dPNfxbi4GO05RRnFmt5oa23+9w32EanrYcSJWspUiJkLMs+37w==", "dependencies": { "pako": "^1.0.11" } }, "node_modules/util-deprecate": { "version": "1.0.2", - "license": "MIT" + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" }, "node_modules/utils-merge": { "version": "1.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", "engines": { "node": ">= 0.4.0" } }, "node_modules/vary": { "version": "1.1.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", "engines": { "node": ">= 0.8" } @@ -3216,11 +3493,13 @@ }, "node_modules/webp-converter": { "version": "2.3.2", - "license": "MIT" + "resolved": "https://registry.npmjs.org/webp-converter/-/webp-converter-2.3.2.tgz", + "integrity": "sha512-9kQ9Q/MPzUV2mye8Tv7vA6vDIPk77rI4AWWm2vSaCyGAEsxqyVZYeVU2MSJY5fLkf6u7G5K343vLxKubOxz16Q==" }, "node_modules/whatwg-fetch": { "version": "3.6.2", - "license": "MIT" + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz", + "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==" }, "node_modules/whatwg-url": { "version": "5.0.0", @@ -3233,7 +3512,8 @@ }, "node_modules/wrap-ansi": { "version": "7.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -3248,11 +3528,13 @@ }, "node_modules/wrappy": { "version": "1.0.2", - "license": "ISC" + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, "node_modules/ws": { "version": "8.13.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", + "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", "engines": { "node": ">=10.0.0" }, @@ -3271,7 +3553,8 @@ }, "node_modules/xhr": { "version": "2.6.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz", + "integrity": "sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==", "dependencies": { "global": "~4.4.0", "is-function": "^1.0.1", @@ -3281,11 +3564,13 @@ }, "node_modules/xml-parse-from-string": { "version": "1.0.1", - "license": "MIT" + "resolved": "https://registry.npmjs.org/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz", + "integrity": "sha512-ErcKwJTF54uRzzNMXq2X5sMIy88zJvfN2DmdoQvy7PAFJ+tPRU6ydWuOKNMyfmOjdyBQTFREi60s0Y0SyI0G0g==" }, "node_modules/xml2js": { - "version": "0.5.0", - "license": "MIT", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.6.0.tgz", + "integrity": "sha512-eLTh0kA8uHceqesPqSE+VvO1CDDJWMwlQfB6LuN6T8w6MaDJ8Txm8P7s5cHD0miF0V+GGTZrDQfxPZQVsur33w==", "dependencies": { "sax": ">=0.6.0", "xmlbuilder": "~11.0.0" @@ -3296,21 +3581,24 @@ }, "node_modules/xmlbuilder": { "version": "11.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", "engines": { "node": ">=4.0" } }, "node_modules/xtend": { "version": "4.0.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", "engines": { "node": ">=0.4" } }, "node_modules/y18n": { "version": "5.0.8", - "license": "ISC", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "engines": { "node": ">=10" } @@ -3340,7 +3628,8 @@ }, "node_modules/yargs-parser": { "version": "21.1.1", - "license": "ISC", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "engines": { "node": ">=12" } diff --git a/package.json b/package.json index 68d5e9f5f..95fe53158 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,7 @@ "jimp": "^0.22.7", "jquery": "^3.6.4", "json5": "^2.2.3", + "lodash": "^4.17.21", "mime-types": "^2.1.35", "multer": "^1.4.5-lts.1", "node-fetch": "^2.6.11", @@ -26,6 +27,7 @@ "png-chunk-text": "^1.0.0", "png-chunks-encode": "^1.0.0", "png-chunks-extract": "^1.0.0", + "response-time": "^2.3.2", "rimraf": "^3.0.2", "sanitize-filename": "^1.6.3", "sentencepiece-js": "^1.1.0", @@ -44,9 +46,9 @@ "license": "AGPL-3.0", "repository": { "type": "git", - "url": "https://github.com/Cohee1207/SillyTavern.git" + "url": "https://github.com/SillyTavern/SillyTavern.git" }, - "version": "1.6.8", + "version": "1.7.0", "scripts": { "start": "node server.js", "pkg": "pkg --compress Gzip --no-bytecode --public ." @@ -67,7 +69,7 @@ ], "assets": [ "node_modules/**/*", - "poe_graphql/**/*" + "src/poe_graphql/**/*" ], "outputPath": "dist", "scripts": [ diff --git a/poe-test.js b/poe-test.js index b5e804c30..18aab9732 100644 --- a/poe-test.js +++ b/poe-test.js @@ -1,9 +1,9 @@ -const poe = require('./poe-client'); +const poe = require('./src/poe-client'); async function test() { const client = new poe.Client(); await client.init('pb-cookie'); - + const bots = client.get_bot_names(); console.log(bots); @@ -18,4 +18,4 @@ async function test() { client.disconnect_ws(); } -test(); \ No newline at end of file +test(); diff --git a/public/NovelAI Settings/Ace_of_Spades-Euterpe.settings b/public/NovelAI Settings/Ace_of_Spades-Euterpe.settings new file mode 100644 index 000000000..3a781522b --- /dev/null +++ b/public/NovelAI Settings/Ace_of_Spades-Euterpe.settings @@ -0,0 +1,17 @@ +{ + "order": [3, 2, 1, 0], + "temperature": 1.15, + "max_length": 60, + "min_length": 60, + "top_k": 0, + "top_p": 0.95, + "top_a": 1, + "typical_p": 1, + "tail_free_sampling": 0.8, + "repetition_penalty": 2.75, + "repetition_penalty_range": 2048, + "repetition_penalty_slope": 7.02, + "repetition_penalty_frequency": 0, + "repetition_penalty_presence": 0, + "max_context": 2048 +} \ No newline at end of file diff --git a/public/NovelAI Settings/All_Nighter-Euterpe.settings b/public/NovelAI Settings/All_Nighter-Euterpe.settings new file mode 100644 index 000000000..d393b92a5 --- /dev/null +++ b/public/NovelAI Settings/All_Nighter-Euterpe.settings @@ -0,0 +1,17 @@ +{ + "order": [1, 0, 3], + "temperature": 1.33, + "max_length": 60, + "min_length": 60, + "top_k": 13, + "top_p": 1, + "top_a": 1, + "typical_p": 1, + "tail_free_sampling": 0.836, + "repetition_penalty": 2.366, + "repetition_penalty_range": 400, + "repetition_penalty_slope": 0.33, + "repetition_penalty_frequency": 0.01, + "repetition_penalty_presence": 0, + "max_context": 2048 +} \ No newline at end of file diff --git a/public/NovelAI Settings/Basic_Coherence-Euterpe.settings b/public/NovelAI Settings/Basic_Coherence-Euterpe.settings new file mode 100644 index 000000000..22eddd1e5 --- /dev/null +++ b/public/NovelAI Settings/Basic_Coherence-Euterpe.settings @@ -0,0 +1,17 @@ +{ + "order": [0, 1, 2, 3], + "temperature": 0.585, + "max_length": 60, + "min_length": 60, + "top_k": 0, + "top_p": 1, + "top_a": 1, + "typical_p": 1, + "tail_free_sampling": 0.87, + "repetition_penalty": 3.05, + "repetition_penalty_range": 2048, + "repetition_penalty_slope": 0.33, + "repetition_penalty_frequency": 0, + "repetition_penalty_presence": 0, + "max_context": 2048 +} \ No newline at end of file diff --git a/public/NovelAI Settings/Classic-Euterpe.settings b/public/NovelAI Settings/Classic-Euterpe.settings index e8fe154b4..94fc96d71 100644 --- a/public/NovelAI Settings/Classic-Euterpe.settings +++ b/public/NovelAI Settings/Classic-Euterpe.settings @@ -1,13 +1,17 @@ { - "order": [3, 0], - "temperature": 1.11, + "order": [2, 1, 3, 0], + "temperature": 0.63, "max_length": 90, "min_length": 1, - "tail_free_sampling": 0.68, - "repetition_penalty": 1.11, - "repetition_penalty_range": 320, + "tail_free_sampling": 0.975, + "repetition_penalty": 1.148125, + "repetition_penalty_range": 2048, "repetition_penalty_frequency": 0, "repetition_penalty_presence": 0, - "repetition_penalty_slope": 0, - "max_context":2048 -} \ No newline at end of file + "repetition_penalty_slope": 0.09, + "max_context":2048, + "top_p": 0.975, + "top_k": 0, + "top_a": 1, + "typical_p": 1 +} diff --git a/public/NovelAI Settings/Classic-Krake.settings b/public/NovelAI Settings/Classic-Krake.settings index 1233f92b4..4fc586dbc 100644 --- a/public/NovelAI Settings/Classic-Krake.settings +++ b/public/NovelAI Settings/Classic-Krake.settings @@ -1,13 +1,17 @@ { - "order": [3, 0], - "temperature": 1.7, + "order": [3, 4, 5, 2, 0], + "temperature": 1.33, "max_length": 90, "min_length": 1, - "tail_free_sampling": 0.66, - "repetition_penalty": 1.06, - "repetition_penalty_range": 340, + "tail_free_sampling": 0.937, + "repetition_penalty": 1.05, + "repetition_penalty_range": 560, "repetition_penalty_frequency": 0, "repetition_penalty_presence": 0, - "repetition_penalty_slope": 0, - "max_context": 2048 -} \ No newline at end of file + "repetition_penalty_slope": 0.18, + "max_context": 2048, + "top_p": 0.88, + "top_k": 0, + "top_a": 0.085, + "typical_p": 0.985 +} diff --git a/public/NovelAI Settings/Fandango-Euterpe.settings b/public/NovelAI Settings/Fandango-Euterpe.settings new file mode 100644 index 000000000..26452db91 --- /dev/null +++ b/public/NovelAI Settings/Fandango-Euterpe.settings @@ -0,0 +1,17 @@ +{ + "order": [2, 1, 3, 0], + "temperature": 0.86, + "max_length": 60, + "min_length": 60, + "top_k": 20, + "top_p": 0.95, + "top_a": 1, + "typical_p": 1, + "tail_free_sampling": 1, + "repetition_penalty": 2.25, + "repetition_penalty_range": 2048, + "repetition_penalty_slope": 0.09, + "repetition_penalty_frequency": 0, + "repetition_penalty_presence": 0, + "max_context": 2048 +} \ No newline at end of file diff --git a/public/NovelAI Settings/Genesis-Euterpe.settings b/public/NovelAI Settings/Genesis-Euterpe.settings new file mode 100644 index 000000000..3fe8fd89d --- /dev/null +++ b/public/NovelAI Settings/Genesis-Euterpe.settings @@ -0,0 +1,17 @@ +{ + "order": [2, 1, 3, 0], + "temperature": 0.63, + "max_length": 60, + "min_length": 60, + "top_k": 0, + "top_p": 0.975, + "top_a": 1, + "typical_p": 1, + "tail_free_sampling": 0.975, + "repetition_penalty": 2.975, + "repetition_penalty_range": 2048, + "repetition_penalty_slope": 0.09, + "repetition_penalty_frequency": 0, + "repetition_penalty_presence": 0, + "max_context":2048 +} \ No newline at end of file diff --git a/public/NovelAI Settings/Low_Rider-Euterpe.settings b/public/NovelAI Settings/Low_Rider-Euterpe.settings new file mode 100644 index 000000000..974f0d62c --- /dev/null +++ b/public/NovelAI Settings/Low_Rider-Euterpe.settings @@ -0,0 +1,17 @@ +{ + "order": [2, 1, 3, 0], + "temperature": 0.94, + "max_length": 60, + "min_length": 60, + "top_k": 12, + "top_p": 1, + "top_a": 1, + "typical_p": 1, + "tail_free_sampling": 0.94, + "repetition_penalty": 2.66, + "repetition_penalty_range": 2048, + "repetition_penalty_slope": 0.18, + "repetition_penalty_frequency": 0.013, + "repetition_penalty_presence": 0, + "max_context": 2048 +} \ No newline at end of file diff --git a/public/NovelAI Settings/Moonlit_Chronicler-Euterpe.settings b/public/NovelAI Settings/Moonlit_Chronicler-Euterpe.settings new file mode 100644 index 000000000..ce72f642a --- /dev/null +++ b/public/NovelAI Settings/Moonlit_Chronicler-Euterpe.settings @@ -0,0 +1,17 @@ +{ + "order": [1, 5, 4, 3, 0], + "temperature": 1.25, + "max_length": 60, + "min_length": 60, + "top_k": 300, + "top_p": 1, + "top_a": 0.782, + "typical_p": 0.95, + "tail_free_sampling": 0.802, + "repetition_penalty": 2.075, + "repetition_penalty_range": 512, + "repetition_penalty_slope": 0.36, + "repetition_penalty_frequency": 0, + "repetition_penalty_presence": 0, + "max_context": 2048 +} \ No newline at end of file diff --git a/public/NovelAI Settings/Morpho-Euterpe.settings b/public/NovelAI Settings/Morpho-Euterpe.settings new file mode 100644 index 000000000..15185a724 --- /dev/null +++ b/public/NovelAI Settings/Morpho-Euterpe.settings @@ -0,0 +1,17 @@ +{ + "order": [0], + "temperature": 0.6889, + "max_length": 60, + "min_length": 60, + "top_k": 0, + "top_p": 1, + "top_a": 1, + "typical_p": 1, + "tail_free_sampling": 1, + "repetition_penalty": 1, + "repetition_penalty_range": 2048, + "repetition_penalty_slope": 0, + "repetition_penalty_frequency": 0.1, + "repetition_penalty_presence": 0, + "max_context": 2048 +} \ No newline at end of file diff --git a/public/NovelAI Settings/Ouroborous-Euterpe.settings b/public/NovelAI Settings/Ouroborous-Euterpe.settings new file mode 100644 index 000000000..b795fd44d --- /dev/null +++ b/public/NovelAI Settings/Ouroborous-Euterpe.settings @@ -0,0 +1,17 @@ +{ + "order": [1, 0, 3] + "temperature": 1.07, + "max_length": 60, + "min_length": 60, + "top_k": 264, + "top_p": 1, + "top_a": 1, + "typical_p": 1, + "tail_free_sampling": 0.925, + "repetition_penalty": 2.165, + "repetition_penalty_range": 404, + "repetition_penalty_slope": 0.84, + "repetition_penalty_frequency": 0, + "repetition_penalty_presence": 0, + "max_context":2048 +} \ No newline at end of file diff --git a/public/NovelAI Settings/Pro_Writer-Euterpe.settings b/public/NovelAI Settings/Pro_Writer-Euterpe.settings new file mode 100644 index 000000000..34eacac1c --- /dev/null +++ b/public/NovelAI Settings/Pro_Writer-Euterpe.settings @@ -0,0 +1,17 @@ +{ + "order": [3, 0], + "temperature": 1.348, + "max_length": 60, + "min_length": 60, + "top_k": 64, + "top_p": 0.909, + "top_a": 1, + "typical_p": 1, + "tail_free_sampling": 0.688, + "repetition_penalty": 4.967, + "repetition_penalty_range": 2048, + "repetition_penalty_slope": 0.09, + "repetition_penalty_frequency": 0, + "repetition_penalty_presence": 0, + "max_context": 2048 +} \ No newline at end of file diff --git a/public/i18n.json b/public/i18n.json new file mode 100644 index 000000000..587414a13 --- /dev/null +++ b/public/i18n.json @@ -0,0 +1,295 @@ +{ + "lang": [ + "zh-cn" + ], + "zh-cn": { + "clickslidertips": "点击滑块右侧数字可手动输入", + "kobldpresets": "Kobold 预设", + "guikoboldaisettings": "GUI KoboldAI 设置", + "novelaipreserts": "NovelAI预设", + "default": "默认", + "openaipresets": "OpenAI 预设", + "text gen webio(ooba) presets": "文本生成WebUI(ooba)预设", + "poe.com api settings": "poe.com API 设置", + "response legth(tokens)": "响应长度(Toekns)", + "select": "选择 ", + "context size(tokens)": "上下文大小(Toekns)", + "unlocked": "解锁", + "only select modls support context sizes greater than 2048 tokens. proceed only is you know you're doing": "仅选定模型支持大于2048Toekn的上下文窗口时可用。您在修改该选项时应该知道自己在做什么。", + "rep.pen": "Rep. Pen.", + "rep.pen range": "Rep. Pen.范围", + "temperature": "Temperature", + "Encoder Rep. Pen.": "Encoder Rep. Pen.", + "No Repeat Ngram Size": "不需要重复Ngram大小", + "Min Length": "最小长度", + "OpenAI Reverse Proxy": "OpenAI 反向代理", + "Alternative server URL (leave empty to use the default value).": "替代服务器URL(留空使用默认值)。", + "Remove your real OAI API Key from the API panel BEFORE typing anything into this box": "在输入内容之前,从API面板中删除OAI API密钥", + "We cannot provide support for problems encountered while using an unofficial OpenAI proxy": "我们无法为使用非官方OpenAI代理时遇到的问题提供支持", + "Legacy Streaming Processing": "传统流式处理", + "Enable this if the streaming doesn't work with your proxy": "如果流式响应与您的代理不兼容,请启用此功能", + "Context Size (tokens)": "上下文大小(Tokens)", + "Max Response Length (tokens)": "最大响应长度(Tokens)", + "Temperature": "采样温度", + "Frequency Penalty": "频率惩罚", + "Presence Penalty": "存在惩罚", + "Top-p": "Top-p", + "Display bot response text chunks as they are generated": "显示机器人生成的响应文本块", + "Auto-purge API context (save JB)": "自动删除应用程序接口上下文(保存JB)", + "Delete non-JB messages from Poe context before sending a new prompt. Prevents auto-jailbreak message from being pushed out of context": "在发送新提示之前从Poe上下文中删除非JB消息。防止自动越狱消息被推出上下文", + "Auto-jailbreak": "自动越狱", + "Send the jailbreak message before first generation after page refresh.": "在页面刷新后的第一次生成之前发送越狱消息", + "Send character note": "发送人物笔记", + "Sent with every prompt to modify bot responses.": "每个提示都发送给修改机器人响应的人", + "Top A": "Top-a", + "Typical Sampling": "典型采样", + "Tail Free Sampling": "无尾采样", + "Rep. Pen. Slope": "Rep. Pen. Slope", + "Single-line mode": "单行模式", + "Top K": "Top-k", + "Top P": "Top-p", + "Typical P": "典型P", + "Do Sample": "采样", + "Add BOS Token": "添加BOS标记", + "Add the bos_token to the beginning of prompts. Disabling this can make the replies more creative.": "在提示的开头添加bos_token标记。禁用此功能可以让回复更加创造性.", + "Ban EOS Token": "禁止EOS标记", + "Ban the eos_token. This forces the model to never end the generation prematurely": "禁止eos_token标记。这会迫使模型不会过早结束生成", + "Skip Special Tokens": "跳过特殊标记", + "Beam search": "搜索", + "Number of Beams": "光束数目", + "Length Penalty": "长度惩罚", + "Early Stopping": "提前终止", + "Contrastive search": "对比搜索", + "Penalty Alpha": "惩罚系数", + "Seed": "种子", + "Inserts jailbreak as a last system message.": "在最后一个系统消息中插入越狱", + "This tells the AI to ignore its usual content restrictions.": "这告诉人工智能忽略其通常的内容限制", + "NSFW Encouraged": "NSFW鼓励", + "Tell the AI that NSFW is allowed.": "告诉人工智能,NSFW是允许的。", + "NSFW Prioritized": "NSFW优先", + "NSFW prompt text goes first in the prompt to emphasize its effect.": "NSFW提示文本在提示中排在第一位,以强调其效果", + "Streaming": "流式响应", + "Display the response bit by bit as it is generated.": "在生成响应时逐位显示响应。", + "When this is off, responses will be displayed all at once when they are complete.": "关闭此选项后,响应将在完成后立即显示所有响应。", + "Enhance Definitions": "增强定义", + "Use OAI knowledge base to enhance definitions for public figures and known fictional characters": "使用 OAI 知识库增强公众人物和已知虚构人物的定义", + "Wrap in Quotes": "用引号括起来", + "Wrap entire user message in quotes before sending.": "在发送之前将整个用户消息包装在引号中。", + "Leave off if you use quotes manually for speech.": "", + "Main prompt": "主提示符", + "The main prompt used to set the model behavior": "用于设置模型行为的主要提示", + "NSFW prompt": "NSFW 提示", + "Prompt that is used when the NSFW toggle is on": "NSFW 切换开关打开时使用的提示", + "Jailbreak prompt": "越狱提示", + "Prompt that is used when the Jailbreak toggle is on": "越狱切换开关打开时使用的提示", + "Impersonation prompt": "模拟提示", + "Prompt that is used for Impersonation function": "用于模拟功能的提示", + "Logit Bias": "对数偏差", + "Helps to ban or reenforce the usage of certain words": "有助于禁止或加强某些单词的使用", + "View / Edit bias preset": "查看/编辑偏置预设", + "Add bias entry": "添加偏置条目", + "Jailbreak activation message": "越狱激活消息", + "Message to send when auto-jailbreak is on.": "自动越狱开启时要发送的消息。", + "Jailbreak confirmation reply": "越狱确认回复", + "Bot must send this back to confirm jailbreak": "机器人必须将其发回以确认越狱", + "Character Note": "人物注释", + "Influences bot behavior in its responses": "影响机器人响应中的行为", + "API": "API", + "KoboldAI": "KoboldAI", + "Poe": "Poe", + "Use Horde": "使用Horde", + "API url": "接口网址", + "Register a Horde account for faster queue times": "注册帐户以加快排队时间", + "Learn how to contribute your idle GPU cycles to the Hord": "了解如何将空闲 GPU 周期贡献给 Hord", + "Adjust context size to worker capabilities": "根据辅助角色功能调整上下文大小", + "Adjust response length to worker capabilities": "根据辅助角色功能调整响应长度", + "API key": "接口密钥", + "Register": "注册", + "For privacy reasons": "出于隐私原因,您的 API 密钥将在您重新加载页面后隐藏", + "Model": "模型", + "Hold Control / Command key to select multiple models.": "按住控制/命令键选择多个型号。", + "Horde models not loaded": "按住控制/命令键选择多个型号。", + "Not connected": "未连接", + "Novel API key": "NovelAI API 密钥", + "Follow": "跟随", + "these directions": " 这些帮助 ", + "to get your NovelAI API key.": "以获取您的 NovelAI API 密钥。", + "Enter it in the box below": "将其输入到下面的输入框中", + "Novel AI Model": "NovelAI 模型", + "Euterpe": "Euterpe", + "Krake": "Krate", + "No connection": "无连接", + "oobabooga/text-generation-webui": "", + "Make sure you run it with": "确保启动时包含 --api 参数", + "Blocking API url": "阻塞式 API 地址", + "Streaming API url": "Streaming API 地址", + "to get your OpenAI API key.": "以获取您的 OpenAI API 密钥。", + "OpenAI Model": "OpenAI模型", + "View API Usage Metrics": "查看 API 使用情况", + "Poe.com Unofficial API": "Poe.com 非官方的 “API”", + "to get your 'p-b cookie'": "", + "Bot": "Bot", + "Connect to the API": "连接到API", + "Auto-connect to Last Server": "自动连接到最后的API", + "View hidden API keys": "查看隐藏的 API 密钥", + "Advanced Formatting": "高级格式化", + "AutoFormat Overrides": "自动套用格式替代", + "Disable description formatting": "禁用说明格式", + "Disable personality formatting": "禁用个性化格式", + "Disable scenario formatting": "禁用方案格式", + "Disable example chats formatting": "禁用聊天格式示例", + "Disable chat start formatting": "禁用聊天开始格式", + "Custom Chat Separator": "自定义聊天分隔符", + "Instruct mode": "指示模式", + "Enabled": "启用", + "Wrap Sequences with Newline": "用换行符换行序列", + "Include Names": "包括名称", + "System Prompt": "系统提示", + "Input Sequence": "输入序列", + "Output Sequence": "输出序列", + "System Sequence": "系统顺序", + "Stop Sequence": "停止序列", + "Context Formatting": "上下文格式", + "Tokenizer": "分词器", + "None / Estimated": "无/估计", + "Sentencepiece (LLaMA)": "Sentencepiece (LLaMA)", + "Token Padding": "令牌填充", + "Always add character's name to prompt": "始终将角色名称添加到提示符中", + "Keep Example Messages in Prompt": "保持示例消息提示", + "Remove Empty New Lines from Output": "从输出中删除空的新行", + "Pygmalion Formatting": "Pygmalion 格式", + "Disabled for all models": "对所有模型禁用", + "Automatic (based on model name)": "自动(基于型号名称)", + "Enabled for all models": "所有模型启用", + "Multigen": "Multigen", + "First chunk (tokens)": "第一个区块(Tokens)", + "Next chunks (tokens)": "接下来的区块(Tokens)", + "Anchors Order": "锚点顺序", + "Character then Style": "字符然后样式", + "Style then Character": "样式然后字符", + "Character Anchor": "角色锚点", + "Style Anchor": "样式锚点", + "World Info": "", + "Scan Depth": "扫描深度", + "depth": "深度", + "Token Budget": "Token预算", + "budget": "预算", + "Recursive scanning": "递归扫描", + "Soft Prompt": "软提示", + "About soft prompts": "关于软提示", + "None": "没有", + "User Settings": "用户设置", + "UI Customization": "用户界面定制", + "Avatar Style": "头像风格", + "Circle": "圈", + "Rectangle": "Rectangle", + "Chat Style": "聊天方式:", + "Default": "默认", + "Bubbles": "气泡", + "Chat Width (PC)": "聊天宽度(电脑):", + "No Blur Effect": "无模糊效果", + "No Text Shadows": "无文本阴影", + "Waifu Mode": "♡ Waifu模式 ♡", + "Message Timer": "消息计时器", + "Characters Hotswap": "角色热插拔", + "Movable UI Panels": "可移动的用户界面面板", + "Reset Panels": "重置面板", + "UI Colors": "用户界面颜色", + "Main Text": "正文", + "Italics Text": "斜体文本", + "Quote Text": "引用文本", + "Shadow Color": "阴影颜色", + "FastUI BG": "快界面 BG", + "Blur Tint": "模糊色调", + "Font Scale": "字体比例", + "Blur Strength": "模糊强度", + "Text Shadow Width": "文本阴影宽度", + "UI Theme Preset": "UI 主题预设", + "Power User Options": "高级用户选项", + "Swipes": "滑动", + "Background Sound Only": "仅背景声音", + "Auto-load Last Chat": "自动加载上次聊天", + "Auto-save Message Edits": "自动保存消息编辑", + "Auto-fix Markdown": "自动修复", + "Allow {{char}}: in bot messages": "允许 {{char}}:在机器人消息中", + "Allow {{user}}: in bot messages": "允许 {{user}}:在机器人消息中", + "Auto-scroll Chat": "自动滚动聊天", + "Render Formulas": "渲染公式", + "Send on Enter": "输入时发送", + "Always disabled": "始终禁用", + "Automatic (desktop)": "自动(桌面)", + "Always enabled": "始终启用", + "Name": "名字", + "Your Avatar": "你的头像", + "Extensions API:": "扩展接口:", + "SillyTavern-extras": "SillyTavern-extras", + "Auto-connect": "自动连接", + "Active extensions": "活动扩展", + "Extension settings": "扩展设置", + "Description": "描述", + "First message": "第一条消息", + "Group Controls": "组控件", + "Group reply strategy": "组回复策略", + "Natural order": "自然顺序", + "List order": "列表顺序", + "Allow self responses": "允许自我响应", + "Auto Mode": "自动模式", + "Add Members": "添加成员", + "Current Members": "现有成员", + "text": "文本", + "Delete": "删除", + "Cancel": "取消", + "Advanced Defininitions": "- 高级定义", + "Personality summary": "性格总结", + "A brief description of the personality": "个性的简要描述", + "Scenario": "场景", + "Circumstances and context of the dialogue": "对话的情况和背景", + "Talkativeness": "", + "How often the chracter speaks in": "说话的频率", + "group chats!": "群聊!", + "Shy": "羞涩 ", + "Normal": "正常", + "Chatty": "", + "Examples of dialogue": "对话示例", + "Forms a personality more clearly": "更清晰地形成个性", + "Save": "保存", + "World Info Editor": "信息编辑器", + "New Entry": "新一行", + "Export": "导出", + "Delete World": "删除文本", + "Chat History": "聊天记录", + "Group Chat Scenario Override": "群聊方案覆盖", + "All group members will use the following scenario text instead of what is specified in their character cards.": "所有组成员都将使用以下方案文本,而不是其角色卡中指定的内容。", + "Keywords": "关键字", + "Separate with commas": "用逗号分隔", + "Secondary Required Keywords": "次要必填关键字", + "Content": "内容", + "What this keyword should mean to the AI": "这个关键词对AI意味着什么", + "Memo/Note": "备忘录/便笺", + "Not sent to AI": "未发送到 AI", + "Constant": "常数 ", + "Selective": "选择", + "Before Char": "在Char之前", + "After Char": "在Char之后", + "Insertion Order": "顺序", + "Tokens:": "Tokens", + "Disable": "禁用", + "${characterName}": "${字符名称}", + "CHAR": "字符", + "is typing": "正在输入...", + "Back to parent chat": "返回聊天", + "Save bookmark": "保存书签", + "Convert to group": "转换为组", + "Start new chat": "开始新聊天", + "View past chats": "查看过去的聊天", + "Delete messages": "删除消息", + "Impersonate": "模拟", + "Regenerate": "重新生成", + "PNG": "PNG", + "JSON": "JSON", + "WEBP": "WEBP", + "presets": "预设", + "Message Sound": "消息音效", + "Author's Note": "作者的注释" + } +} \ No newline at end of file diff --git a/public/index.html b/public/index.html index 0ef31e641..9929242ea 100644 --- a/public/index.html +++ b/public/index.html @@ -21,15 +21,6 @@ - - @@ -43,13 +34,35 @@ + - + @@ -91,43 +104,43 @@
-
+
Click slider numbers to input manually.
-

Kobold Presets - +

Kobold Presets + ?

- NovelAI Presets - + NovelAI Presets + ?

-

OpenAI Presets

+

Chat Completion Presets

@@ -136,12 +149,13 @@
-

Text Gen WebUI (ooba) presets

+

Text Gen WebUI (ooba) presets +

-

Poe.com API Settings

+

Poe.com API Settings


@@ -150,7 +164,7 @@
-
+
Response Length (tokens)
@@ -167,7 +181,7 @@
-
+
Context Size (tokens)
@@ -185,11 +199,13 @@
@@ -197,12 +213,10 @@
- -
-
+
Temperature
@@ -217,7 +231,7 @@
-
+
Rep. Pen.
@@ -232,7 +246,7 @@
-
+
Rep. Pen. Range
@@ -246,9 +260,38 @@
+
+
+
+ +
+ + Display the response bit by bit as it is generated.
+ + When this is off, responses will be displayed all at once when they are complete. + +
+
+
-
+
+ +
+ + Display the response bit by bit as it is generated.
+ + When this is off, responses will be displayed all at once when they are complete. + +
+
+
Temperature
@@ -262,7 +305,7 @@
-
+
Rep. Pen.
@@ -297,7 +340,7 @@
- +
@@ -354,7 +397,7 @@
-
+
Temperature
@@ -369,7 +412,7 @@
-
+
Rep. Pen.
@@ -384,7 +427,7 @@
-
+
Encoder Rep. Pen.
@@ -399,7 +442,7 @@
-
+
No Repeat Ngram Size
@@ -414,7 +457,7 @@
-
+
Min Length
@@ -430,30 +473,41 @@
-
-
- OpenAI Reverse Proxy +
+
+ OpenAI / Claude Reverse Proxy
- Alternative server URL (leave empty to use the default value).
+ + Alternative server URL (leave empty to use the default value).
+
- Remove your real OAI API Key from the API panel BEFORE typing anything into this box. + + Remove your real OAI API Key from the API panel BEFORE typing anything + into this box. +
- We cannot provide support for problems encountered while using an unofficial OpenAI proxy. + + We cannot provide support for problems encountered while using an + unofficial OpenAI proxy. + +
-
+
-
+
Enable this if the streaming doesn't work with your proxy.
@@ -463,11 +517,12 @@ Unlocked Context Size
- Unrestricted maximum value for the context size slider. Enable only if you know what you're doing. + Unrestricted maximum value for the context size slider. Enable only if you know + what you're doing.
-
+
Context Size (tokens)
@@ -482,7 +537,7 @@
-
+
Max Response Length (tokens)
@@ -490,7 +545,7 @@
-
+
Temperature
@@ -499,12 +554,13 @@
-
select
+
+ select
-
-
+
+
Frequency Penalty
@@ -518,8 +574,8 @@
-
-
+
+
Presence Penalty
@@ -533,9 +589,24 @@
-
-
- Top-p +
+
+ Top K +
+
+
+ +
+
+
+ select +
+
+
+
+
+
+ Top P
@@ -550,45 +621,71 @@
+
+ Use "Unlocked Context" to enable chunked generation. + It extends the context window in exchange for reply generation speed. +
+

Safe Context Size values for Poe bots:

+
    +
  • ChatGPT / Sage = 3600-4000 tokens
  • +
  • Claude-instant / Claude+ = 5000-5500 tokens
  • +
  • GPT-4 = 7600-8000 tokens
  • +
+
+ + +
-
+
Display bot response text chunks as they are generated.
-
- Delete non-JB messages from Poe context before sending a new prompt. Prevents auto-jailbreak message from being pushed out of context. +
+ Delete non-JB messages from Poe context before sending a new prompt. Prevents + auto-jailbreak message from being pushed out of context.
-
+
Send the jailbreak message before first generation after page refresh.
-
+
Sent with every prompt to modify bot responses.
- +
+
+ +
+ Show suggested replies. Not all bots support this. +

@@ -598,7 +695,7 @@
-
+
Top P
@@ -613,7 +710,7 @@
-
+
Top A
@@ -628,7 +725,7 @@
-
+
Top K
@@ -643,7 +740,7 @@
-
+
Typical Sampling
@@ -658,7 +755,7 @@
-
+
Tail Free Sampling
@@ -673,7 +770,7 @@
-
+
Rep. Pen. Slope
@@ -689,8 +786,8 @@
@@ -699,7 +796,7 @@
-
+
Top K
@@ -714,7 +811,7 @@
-
+
Top P
@@ -729,7 +826,7 @@
-
+
Typical P
@@ -776,43 +873,45 @@
-
- Add the bos_token to the beginning of prompts. Disabling this can make the replies more creative. +
+ Add the bos_token to the beginning of prompts. Disabling this can make the + replies more creative.
-
- Ban the eos_token. This forces the model to never end the generation prematurely. +
+ Ban the eos_token. This forces the model to never end the generation + prematurely.

-

Beam search

+

Beam search

-
+
Number of Beams
@@ -828,7 +927,7 @@
- Length Penalty + Length Penalty
@@ -844,13 +943,13 @@

Contrastive search

-
+
Penalty Alpha
@@ -865,7 +964,7 @@
-
+
Seed
@@ -879,68 +978,93 @@ Send Jailbreak
- Inserts jailbreak as a last system message.
- This tells the AI to ignore its usual content restrictions. + Inserts + jailbreak as a last system message.
+ This + tells the AI to ignore its usual content restrictions.
-
+
Tell the AI that NSFW is allowed.
-
+
NSFW prompt text goes first in the prompt to emphasize its effect.
- Display the response bit by bit as it is generated.
- When this is off, responses will be displayed all at once when they are complete. + Display + the response bit by bit as it is generated.
+ When + this is off, responses will be displayed all at once when they are + complete.
-
- Use OAI knowledge base to enhance definitions for public figures and known fictional characters +
+ Use OAI knowledge base to enhance definitions for public figures and known + fictional characters
- Wrap entire user message in quotes before sending.
- Leave off if you use quotes manually for speech. + Wrap + entire user message in quotes before sending.
+ Leave off + if you use quotes manually for speech. +
+
+
+
+ Replace empty message +
+
+ + Send this text instead of nothing when the text box is empty. + +
+
+

- Main prompt + Main prompt
-
+
+ Overridden by the Character Definitions. +
+
The main prompt used to set the model behavior
@@ -949,13 +1073,13 @@
- NSFW prompt + NSFW prompt
-
- Prompt that is used when the NSFW toggle is ON +
+ Prompt that is used when the NSFW toggle is on
@@ -977,12 +1101,15 @@
- Jailbreak prompt + Jailbreak prompt
-
+
+ Overridden by the Character Definitions. +
+
Prompt that is used when the Jailbreak toggle is on
@@ -998,12 +1125,12 @@
- Impersonation prompt + Impersonation prompt
-
+
Prompt that is used for Impersonation function
@@ -1018,7 +1145,8 @@
- Wraps activated World Info entries before inserting into the prompt. Use {0} to mark a place where the content is inserted. + Wraps activated World Info entries before inserting into the prompt. Use + {0} to mark a place where the content is inserted.
@@ -1027,12 +1155,12 @@
-
-
+
+
Logit Bias
-
- Helps to ban or reenforce the usage of certain words +
+ Helps to ban or reinforce the usage of certain tokens. Confirm token parsing with Tiktokenizer.
@@ -1145,10 +1274,12 @@
@@ -1168,24 +1299,26 @@

API key

-
Get it here: Register
+ Get it here: Register (View my Kudos)
Enter 0000000000 to use anonymous mode. -
-
+ +
-
For privacy reasons, your API key will be hidden after you reload the page.
+
For privacy reasons, your API key will be hidden after you + reload the page.

Model

- You can select multiple models.
Avoid sending sensitive information to the Horde. Learn more
+ You can select multiple models.
Avoid sending + sensitive information to the Horde. Learn more
@@ -1200,7 +1333,7 @@

API url

-
Example: http://127.0.0.1:5000/api
+ Example: http://127.0.0.1:5000/api
@@ -1214,24 +1347,27 @@

Advanced Formatting - + ?

-

AutoFormat Overrides

+

AutoFormat Overrides

-

+

Custom Chat Separator

@@ -1420,43 +1626,46 @@
-

Instruct mode - +

Instruct mode + ?

+
+ Overridden by the Character Definitions. +
- +
@@ -1466,15 +1675,15 @@
- +
@@ -1482,7 +1691,7 @@
@@ -1492,10 +1701,10 @@
-

Context Formatting

+

Context Formatting

-

Tokenizer - +

Tokenizer + ?

@@ -1504,12 +1713,14 @@ + +

Token Padding - + ?
@@ -1517,14 +1728,20 @@

@@ -1540,17 +1757,33 @@

-

Pygmalion Formatting

+

+ + Pygmalion Formatting + +

- Multigen - + Multigen + ?

@@ -1562,11 +1795,11 @@
@@ -1585,14 +1818,14 @@
-
+

World Selector - + ?

@@ -1603,62 +1836,64 @@ - - - + + +
-
-
- Scan Depth ? -
-
-
- +
+
+
+ Scan Depth
-
-
- depth +
+
+ +
+
+
+ depth +
+
+
+
+ +
+
+ Max Tokens +
+
+
+ +
+
+
+ budget +
- -
-
- Token Budget ? -
-
-
- -
-
-
- budget -
-
-
-
- -
+
+
@@ -1666,45 +1901,36 @@

-
-
-

- World Info Editor - ? + World Editor + ?

- -
- - -
+
+
+ + +
+ + + +
+
+ +
- -
- - - - -
-
-
-

Soft Prompt

-
About soft prompts ?
- -
@@ -1714,37 +1940,37 @@
-

User Settings

+

User Settings

-

UI Customization

+

UI Customization

- Avatar Style:
+ Avatar Style:
- Chat Style:
+ Chat Style:
- Chat Width (PC):
+ Chat Width (PC):
+ + + + - +
-

UI Colors

+

UI Colors

- Main Text + Main Text
- Italics Text + Italics Text
- Quote Text + Quote Text
- Shadow Color + Shadow Color
- FastUI BG + FastUI BG
- Blur Tint + Blur Tint
-
+
Font Scale
@@ -1832,7 +2078,7 @@
-
+
Blur Strength
@@ -1847,7 +2093,7 @@
-
+
Text Shadow Width
@@ -1864,7 +2110,7 @@

- UI Theme Preset + UI Theme Preset

- Swipes + Swipes -
+
@@ -1940,17 +2181,18 @@
-

+

Send on Enter

-
+
Auto-swipe
@@ -1972,17 +2214,19 @@
-

Name

+

Name

+
-

Your Avatar

+

Your Persona

+
@@ -2020,32 +2264,36 @@
-
-

Extensions API: - - SillyTavern-extras - -

- -
- - - - +
+
+

Extensions API: + + SillyTavern-extras + +

+
+
Not Connected
+ +
-
- Not connected +
+ + +
+
+ +
+ +
-
-

Active extensions

-
    -
+
-
-

Extension settings

+
+
@@ -2056,26 +2304,38 @@