├── .env.example ├── .gitignore ├── .prettierrc ├── README.md ├── apiHelpers ├── elevenLabs │ └── index.ts ├── endato │ └── index.ts └── openai │ └── index.ts ├── controllers └── voice.ts ├── index.d.ts ├── index.ts ├── package.json ├── public ├── create-openai-key.png ├── eleven-labs-key.png ├── endato-api-image.png ├── endato-key.png ├── github-icon.svg ├── liam-banner.jpg ├── scratched-bg.jpg └── style.css ├── routes └── voice.ts ├── tsconfig.json ├── utils ├── cache.ts └── logger.ts ├── views └── pages │ └── index.ejs └── yarn.lock /.env.example: -------------------------------------------------------------------------------- 1 | TWILIO_AUTH_TOKEN= 2 | TWILIO_ACCOUNT_SID= 3 | ENDATO_API_KEY_NAME= 4 | ENDATO_API_KEY_PASSWORD= 5 | OPENAI_API_KEY= 6 | OPENAI_MODEL=gpt-3.5-turbo 7 | VOICE_ENDPOINT=/voice_XXXXXXXXXXXXXXXXXX 8 | ELEVEN_LABS_API_KEY= 9 | ELEVEN_MODEL=eleven_turbo_v2 10 | ELEVEN_VOICE_ID=g5CIjZEefAph4nQFvHAz 11 | GA4_TRACKING_CODE= 12 | NODE_ENV=production 13 | PORT=1337 14 | VOICE_MODE=false 15 | RECORD=false 16 | STREAM_MODE=false 17 | MAX_CALL_DURATION_SEC=180 -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | dev 2 | .cache 3 | .env 4 | node_modules 5 | call-log.log 6 | .cache 7 | .env 8 | call-log.log 9 | yarn-error.log 10 | voices.json 11 | eleven-labs-voices.md 12 | ignore 13 | public/voice-responses/* -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "printWidth": 300 3 | } 4 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # LiamAI, Powered by Eleven Labs, ChatGPT, Endato and Twilio 2 | 3 | ![Banner](public/liam-banner.jpg) 4 | 5 | ## What is it? 6 | 7 | LiamAI is an AI with the ability to talk over the phone and one small twist, it has the ability to search public records on the fly for information related to the caller. 8 | 9 | This information is then used in a prompt sent to GPT-4 and can be presented in anyway you like. By default, the ai is instructed to perform a threatening Liam Neeson impression from Taken. 10 | 11 | The AI relies on 4 services, 12 | 13 | 1. Endato - https://endato.com/ Public information database, used to find details on the caller 14 | 2. OpenAI - https://openai.com/ GPT-4 generates a threat based upon user information 15 | 3. Eleven Labs (Optional) - https://elevenlabs.io/ - Provides realistic text to speech services 16 | 4. Twilio - https://www.twilio.com/en-us Makes it easy to make and recieve phone calls using their API. 17 | 18 | ## How to setup the AI 🤖 19 | 20 | To get the AI working, you will need to install its dependencies and then setup API keys for all the services listed above. The application was built using Node v18.17.1. 21 | 22 | ## Installing node dependencies 23 | 24 | Navigate to the root folder of the project and run `yarn`. 25 | 26 | ``` 27 | MrWebMD@readme:~/liam-ai$ yarn 28 | yarn install v1.22.21 29 | ... 30 | Done in 2.86s. 31 | ``` 32 | 33 | ## Installing FFMPEG 34 | 35 | FFMPEG is an application that can be used to manipulate media files. After installation it must be added to your PATH variable. 36 | 37 | ``` 38 | sudo apt install ffmpeg 39 | ``` 40 | 41 | Here is a comprehensive guide on how to install FFMPEG on windows. 42 | 43 | https://www.youtube.com/watch?v=IECI72XEox0 44 | 45 | You can verify your installation by running the `ffmpeg` command in a terminal window 46 | 47 | ``` 48 | ~ 49 | ❯ ffmpeg 50 | ffmpeg version N-113018-gbe8a4f80b9-20231218 Copyright (c) 2000-2023 the FFmpeg developers 51 | built with gcc 13.2.0 (crosstool-NG 1.25.0.232_c175b21) 52 | ``` 53 | 54 | ## How to get your API keys 🔑 55 | 56 | We're going to be filling out our `.env.example` file. As you follow along, place your resulting api key in the relevant place after the equal sign in the `.env.example` file. 57 | 58 | ``` 59 | TWILIO_AUTH_TOKEN= 60 | TWILIO_ACCOUNT_SID= 61 | ENDATO_API_KEY_NAME= 62 | ENDATO_API_KEY_PASSWORD= 63 | OPENAI_API_KEY= 64 | OPENAI_MODEL=gpt-3.5-turbo 65 | VOICE_ENDPOINT=/voice_XXXXXXXXXXXXXXXXXX 66 | ELEVEN_LABS_API_KEY= 67 | ELEVEN_MODEL=eleven_turbo_v2 68 | ELEVEN_VOICE_ID=g5CIjZEefAph4nQFvHAz 69 | GA4_TRACKING_CODE= 70 | NODE_ENV=production 71 | PORT=1337 72 | VOICE_MODE=false 73 | RECORD=false 74 | STREAM_MODE=false 75 | MAX_CALL_DURATION_SEC=180 76 | ``` 77 | 78 | ## Endato (Free tier provides 100 lookups per month) 79 | 80 | [Comprehensive guide](https://endato.readme.io/reference/overview#create-an-account-and-get-your-key) 81 | 82 | Create an account using this page https://accounts.endato.com/Join?uf=1 . **Fair warning, you will be welcomed with the website showing you all the information they have on you.** The company name you provide doesn't have to be real. 83 | 84 | Now, sign in here https://accounts.endato.com/Account/Login . 85 | 86 | In the dropdown that says "Select App", choose "Endato API" 87 | 88 | ![Alt text](public/endato-api-image.png) 89 | 90 | You are now able to click on actions and then click on "Copy Key Name" and "Copy Key Password". Paste those keys in the relevant fields of your env file and save. 91 | 92 | ``` 93 | ENDATO_API_KEY_NAME=XXXXXXXXXX 94 | ENDATO_API_KEY_PASSWORD=XXXXXXXXX 95 | ``` 96 | 97 | ![Alt text](public/endato-key.png) 98 | 99 | ## OpenAI 100 | 101 | [Comprehensive Guide](https://platform.openai.com/docs/quickstart/account-setup) 102 | 103 | Create an account on OpenAI https://platform.openai.com/signup and then sign in https://platform.openai.com/login. 104 | 105 | You can now navigate to the api keys page by clicking this link https://platform.openai.com/api-keys . 106 | 107 | Click "Create new secret key", give it any name you want. Now copy the new key's contents into this field of your env 108 | 109 | ![Alt text](public/create-openai-key.png) 110 | 111 | ``` 112 | OPENAI_API_KEY=XXXXXXXXXXXXX 113 | OPENAI_MODEL=gpt-3.5-turbo 114 | ``` 115 | 116 | By default GPT-3 is used because GPT-4 is premium. If you want to use GPT-4 You can change `gpt-3.5-turbo` to `gpt-4` in your env file. 117 | 118 | ## Eleven Labs 🗪 119 | 120 | This section is optional. When you don't supply this key, a regular choppy ai voice will be used. 121 | 122 | After you have signed up, sign in on this page https://elevenlabs.io/sign-up. When signed in over over your user icon on the top right, then click "Profile". You will then be met with a form that tells you your api key. Copy this key into the relevant env field. 123 | 124 | ``` 125 | ELEVEN_LABS_API_KEY=XXXXXXXXXX 126 | ``` 127 | 128 | ![Eleven Labs API Key](public/eleven-labs-key.png) 129 | 130 | ## Twilio 📞 131 | 132 | Last one! Create an account on https://login.twilio.com/ , **you'll get $15 of free trial credits if this is your first time**. Now login here https://www.twilio.com/login . 133 | -------------------------------------------------------------------------------- /apiHelpers/elevenLabs/index.ts: -------------------------------------------------------------------------------- 1 | import fetch, { Response } from "node-fetch"; 2 | 3 | export const getVoiceAudioStream = (textToSay: string) => { 4 | const options = { 5 | method: "POST", 6 | headers: { 7 | "xi-api-key": process.env.ELEVEN_LABS_API_KEY!, 8 | "Content-Type": "application/json", 9 | }, 10 | body: JSON.stringify({ 11 | model_id: process.env.ELEVEN_MODEL!, 12 | text: textToSay, 13 | optimize_streaming_latency: 3, 14 | voice_settings: { stability: 1, similarity_boost: 1 }, 15 | }), 16 | }; 17 | 18 | return fetch(`https://api.elevenlabs.io/v1/text-to-speech/${process.env.ELEVEN_VOICE_ID!}/stream`, options); 19 | }; 20 | -------------------------------------------------------------------------------- /apiHelpers/endato/index.ts: -------------------------------------------------------------------------------- 1 | import { logger } from "../../utils/logger"; 2 | 3 | import { cache } from "../../utils/cache"; 4 | 5 | import fetch, { Headers } from "node-fetch"; 6 | 7 | /** 8 | * Use the endato api to collect public information using a phone number. 9 | * @param phoneNumber A phone number in the structure 000-000-0000 . International phone numbers outside the US aren't allowed so +1 is automatically assumed as the country code. 10 | * @param city The city of the person residing in the US 11 | * @param state The state of the person residing in the US 12 | * @returns 13 | */ 14 | export const personLookup = async (phoneNumber: string, city: string, state: string) => { 15 | /** 16 | * For US based numbers remove the +1 17 | */ 18 | let strippedPhoneNumber = (phoneNumber + "").replace("+1", ""); 19 | 20 | /** 21 | * Attempt to find the result if the lookup has been cached 22 | */ 23 | let cachedResult = cache.getSync(strippedPhoneNumber); 24 | 25 | if (cachedResult) { 26 | logger.info(strippedPhoneNumber + " found in cache"); 27 | return JSON.parse(cachedResult); 28 | } 29 | 30 | /** 31 | * Send a request to Endato to find the person assocciated 32 | * with the phone number. 33 | */ 34 | 35 | const headers = new Headers(); 36 | 37 | headers.set("accept", "application/json"); 38 | headers.set("galaxy-ap-name", process.env.ENDATO_API_KEY_NAME!); 39 | headers.set("galaxy-ap-password", process.env.ENDATO_API_KEY_PASSWORD!); 40 | headers.set("galaxy-search-type", "Person"); 41 | headers.set("content-type", "application/json"); 42 | 43 | const options = { 44 | method: "POST", 45 | headers, 46 | body: JSON.stringify({ 47 | Phone: strippedPhoneNumber, 48 | City: city, 49 | State: state, 50 | }), 51 | }; 52 | 53 | let data = await fetch("https://devapi.endato.com/PersonSearch", options) 54 | .then((response) => response.json()) 55 | .then((response) => response) 56 | .catch((err) => { 57 | logger.error("Failed to get data on phone number " + err); 58 | }); 59 | 60 | /** 61 | * Cache the result of the lookup 62 | */ 63 | 64 | logger.info("Caching result for " + strippedPhoneNumber); 65 | cache.setSync(strippedPhoneNumber, JSON.stringify(data)); 66 | 67 | return data; 68 | }; 69 | -------------------------------------------------------------------------------- /apiHelpers/openai/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * OpenAI initialization 3 | */ 4 | const OpenAI = require("openai"); 5 | 6 | const openai = new OpenAI({ 7 | apiKey: process.env.OPENAI_API_KEY, 8 | }); 9 | 10 | export const getAiResponse = (aiprompt: string, userPrompt: string) => { 11 | return openai.chat.completions.create({ 12 | model: process.env.OPENAI_MODEL, 13 | messages: [ 14 | { 15 | role: "system", 16 | content: aiprompt, 17 | }, 18 | { 19 | role: "user", 20 | content: userPrompt, 21 | }, 22 | ], 23 | temperature: 0, 24 | max_tokens: 1024, 25 | top_p: 1, 26 | frequency_penalty: 0, 27 | presence_penalty: 0, 28 | }); 29 | }; 30 | -------------------------------------------------------------------------------- /controllers/voice.ts: -------------------------------------------------------------------------------- 1 | import { Request, Response } from "express-serve-static-core"; 2 | import { logger } from "../utils/logger"; 3 | import { personLookup } from "../apiHelpers/endato"; 4 | import { getAiResponse } from "../apiHelpers/openai"; 5 | import fs from "fs"; 6 | import Twilio from "twilio"; 7 | import path from "path"; 8 | import { v4 as uuidv4 } from "uuid"; 9 | import { getVoiceAudioStream } from "../apiHelpers/elevenLabs"; 10 | 11 | const twilioClient = Twilio(process.env.TWILIO_ACCOUNT_SID, process.env.TWILIO_AUTH_TOKEN); 12 | 13 | const personToString = (person: Person) => { 14 | return `name: ${person.name.firstName} ${person.name.lastName}, 15 | age: ${person.age}, 16 | date of birth: ${person.dob}, 17 | address history: 18 | ${person.addresses 19 | .map((a) => a.fullAddress) 20 | .join("\n,") 21 | .replace(/[0-9]{5}-[0-9]{4}|[0-9]{5}/g, "")} 22 | relatives: ${person.relativesSummary 23 | ?.slice(0, 4) 24 | .map((r) => r.firstName + " " + r.lastName) 25 | .join(", ")} 26 | `; 27 | }; 28 | 29 | export const voiceController = async (req: Request, res: Response) => { 30 | const requestBody = req.body as TwilioVoiceWebhookBody; 31 | 32 | /** 33 | * Find out more information about the caller 34 | */ 35 | const { Caller: phone, CallerCity: city, CallerState: state, CallSid, CallStatus: callStatus, SpeechResult: userVoiceTranscription } = requestBody; 36 | 37 | logger.info(`Incoming Call - ${phone} ${city} ${state}`); 38 | 39 | let lookupData: PersonSearchResponse; 40 | 41 | try { 42 | lookupData = await personLookup(phone, city, state); 43 | } catch (err) { 44 | logger.error(`Could not fetch information about caller ${phone}`); 45 | logger.error(err); 46 | } 47 | 48 | let person = lookupData?.persons.length > 0 ? lookupData.persons[0] : null; 49 | 50 | if (!person) { 51 | logger.info(`Caller ${phone} could not be found with public records`); 52 | } 53 | 54 | /** 55 | * If more information is provided, then include it with a prompt that will be given to 56 | * an OpenAI model. 57 | */ 58 | 59 | /** 60 | * This means this caller is calling for the first time, 61 | */ 62 | 63 | let aiPrompt = ""; 64 | let userPrompt = ""; 65 | 66 | if (callStatus == "ringing" && !userVoiceTranscription) { 67 | aiPrompt = "Use the following information to perform a menacing liam neeson impression. You are on the phone and you are the only person speaking. Provide a 150 word or less response with the following information included.\n"; 68 | 69 | if (person) { 70 | userPrompt += "List at list 1 relatives name if you have it. Tell the person their address and age if you have it."; 71 | 72 | userPrompt += personToString(person); 73 | } 74 | } 75 | if (callStatus == "in-progress" && userVoiceTranscription) { 76 | /** 77 | * This caller is in the middle of a phone call and has said something to the AI. 78 | */ 79 | 80 | aiPrompt = "You are liam neeson and are responding to the following statement from the person you're talking to. Give a 75 word or less response. You know the following information:\n"; 81 | 82 | if (person) { 83 | userPrompt += personToString(person) + "\n"; 84 | 85 | userPrompt += "The person you're on the phone call with says: " + userVoiceTranscription; 86 | logger.info("The person on the phone says: " + userVoiceTranscription); 87 | } 88 | } 89 | 90 | const callData = await twilioClient 91 | .calls(CallSid) 92 | .fetch() 93 | .then((call) => call); 94 | 95 | let callDurationInSeconds = (Date.now() - new Date(callData.startTime).getTime()) / 1000; 96 | 97 | let hangUpCall = callDurationInSeconds > parseInt(process.env.MAX_CALL_DURATION_SEC!); 98 | 99 | if (hangUpCall) { 100 | aiPrompt = "Make sure to say good bye after you finish talking. " + aiPrompt; 101 | logger.info("Current call duration is greater than 20 seconds"); 102 | } 103 | 104 | logger.info(`AI Prompt for ${phone},`); 105 | logger.info("AI: " + aiPrompt); 106 | logger.info("User: " + userPrompt); 107 | 108 | logger.info(`Generating AI response for ${phone}`); 109 | 110 | /** 111 | * Get a response from OpenAI with a paragraph of writing in an impression of Liam Neeson 112 | */ 113 | 114 | // const aiResponse = { choices: [{ message: { content:"I can't sing, but I can certainly help you with song lyrics, song recommendations, or information about music. If you have a specific song in mind or a theme you're interested in, let me know and I'll do my best to assist!" } }] }; 115 | const aiResponse = await getAiResponse(aiPrompt, userPrompt); 116 | 117 | let textToSay = aiResponse.choices[0].message.content; 118 | 119 | logger.info(`AI Response for ${phone} : ${textToSay}`); 120 | 121 | if (!userVoiceTranscription) { 122 | textToSay = "This call is being recorded. " + textToSay; 123 | } 124 | 125 | let voiceResponse = await getVoiceAudioStream(textToSay); 126 | 127 | let fileContents = Buffer.from(await voiceResponse.arrayBuffer()); 128 | 129 | let fileName = uuidv4() + ".mp3"; 130 | 131 | let responsesDir = path.join(__dirname, "../public/voice-responses"); 132 | 133 | if (!fs.existsSync(responsesDir)) { 134 | fs.mkdirSync(responsesDir); 135 | } 136 | 137 | fs.writeFileSync(path.join(responsesDir, fileName), fileContents); 138 | const vres = new Twilio.twiml.VoiceResponse(); 139 | 140 | vres.play(`https://${req.headers["host"]}/voice-responses/${fileName}`); 141 | 142 | if (hangUpCall) { 143 | logger.info(`Hanging up on caller ${phone}`); 144 | vres.hangup(); 145 | } else { 146 | logger.info(`Waiting for response from ${phone}`); 147 | vres.gather({ 148 | action: `https://${req.headers["host"]}${process.env.VOICE_ENDPOINT}`, 149 | method: "POST", 150 | input: ["speech"], 151 | timeout: 3, 152 | speechModel: "experimental_conversations", 153 | }); 154 | } 155 | 156 | logger.info("twiml response " + vres.toString()); 157 | 158 | res.set("Content-Type", "text/xml"); 159 | res.send(vres.toString()); 160 | 161 | if (process.env.RECORD == "true" && callStatus == "ringing") { 162 | logger.info(`Recording Call - ${req.body["Caller"]}`); 163 | setTimeout(() => { 164 | twilioClient 165 | .calls(req.body["CallSid"]) 166 | .recordings.create({ recordingTrack: "dual" }) 167 | .then((recording) => logger.info(`Recording Started - ${req.body["caller"]} SID:${recording.sid}`)) 168 | .catch((err) => { 169 | logger.error("Failed to record call " + err); 170 | }); 171 | }, 3000); 172 | } 173 | }; 174 | -------------------------------------------------------------------------------- /index.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Twilio API 3 | */ 4 | 5 | interface TwilioVoiceWebhookBody { 6 | AccountSid: string; 7 | ApiVersion: string; 8 | CallSid: string; 9 | CallStatus: "ringing" | "in-progress"; 10 | CallToken: string; 11 | Called: string; 12 | CalledCity: string; 13 | CalledCountry: string; 14 | CalledState: string; 15 | CalledZip: string; 16 | Caller: string; 17 | CallerCity: string; 18 | CallerCountry: string; 19 | CallerState: string; 20 | CallerZip: string; 21 | Direction: string; 22 | SpeechResult?: string; 23 | From: string; 24 | FromCity: string; 25 | FromCountry: string; 26 | FromState: string; 27 | FromZip: string; 28 | StirVerstat: string; 29 | To: string; 30 | ToCity: string; 31 | ToCountry: string; 32 | ToState: string; 33 | ToZip: string; 34 | } 35 | 36 | /** 37 | * Endato API 38 | */ 39 | interface PersonSearchResponse { 40 | persons: Person[]; 41 | counts: Counts; 42 | smartSearchStatistics: SmartSearchStatistics; 43 | pagination: Pagination; 44 | searchCriteria: any[]; 45 | totalRequestExecutionTimeMs: number; 46 | requestId: string; 47 | requestType: string; 48 | requestTime: string; 49 | isError: boolean; 50 | error: Error; 51 | } 52 | 53 | interface Person { 54 | tahoeId: string; 55 | name: Name; 56 | isPublic: boolean; 57 | isOptedOut: boolean; 58 | sparseFlag: number; 59 | isPremium: boolean; 60 | dob: string; 61 | age: number; 62 | dobFirstSeen: string; 63 | dobLastSeen: string; 64 | datesOfDeath: any[]; 65 | akas: Aka[]; 66 | mergedNames: MergedName[]; 67 | locations: Location[]; 68 | addresses: Address[]; 69 | phoneNumbers: PhoneNumber[]; 70 | emailAddresses: any[]; 71 | relativesSummary: RelativesSummary[]; 72 | associatesSummary: AssociatesSummary[]; 73 | fullName: string; 74 | indicators: Indicators; 75 | driversLicenseDetail: any[]; 76 | hasAdditionalData: boolean; 77 | propensityToPayScore: PropensityToPayScore; 78 | associates?: Associate[]; 79 | } 80 | 81 | interface Name { 82 | prefix: string; 83 | firstName: string; 84 | middleName: string; 85 | lastName: string; 86 | suffix: string; 87 | rawNames: string[]; 88 | publicFirstSeenDate: string; 89 | totalFirstSeenDate: string; 90 | sourceSummary: any; 91 | } 92 | 93 | interface Aka { 94 | prefix: string; 95 | firstName: string; 96 | middleName: string; 97 | lastName: string; 98 | suffix: string; 99 | rawNames: string[]; 100 | publicFirstSeenDate: string; 101 | totalFirstSeenDate: string; 102 | sourceSummary: any; 103 | } 104 | 105 | interface MergedName { 106 | prefix: string; 107 | firstName: string; 108 | middleName: string; 109 | lastName: string; 110 | suffix: string; 111 | rawNames: string[]; 112 | publicFirstSeenDate: any; 113 | totalFirstSeenDate: any; 114 | sourceSummary: any; 115 | } 116 | 117 | interface Location { 118 | city: string; 119 | state: string; 120 | } 121 | 122 | interface Address { 123 | isDeliverable: boolean; 124 | isMergedAddress: boolean; 125 | isPublic: boolean; 126 | addressQualityCodes: string[]; 127 | addressHash: string; 128 | houseNumber: string; 129 | streetPreDirection: string; 130 | streetName: string; 131 | streetPostDirection: string; 132 | streetType: string; 133 | unit: string; 134 | unitType?: string; 135 | city: string; 136 | state: string; 137 | county: string; 138 | zip: string; 139 | zip4: string; 140 | latitude: string; 141 | longitude: string; 142 | addressOrder: number; 143 | highRiskMarker: HighRiskMarker; 144 | propertyIndicator: string; 145 | bldgCode: string; 146 | utilityCode: string; 147 | unitCount: number; 148 | firstReportedDate: string; 149 | lastReportedDate: string; 150 | publicFirstSeenDate: string; 151 | totalFirstSeenDate: string; 152 | phoneNumbers: string[]; 153 | neighbors: any[]; 154 | neighborSummaryRecords: any[]; 155 | fullAddress: string; 156 | sourceSummary: any; 157 | } 158 | 159 | interface HighRiskMarker { 160 | isHighRisk: boolean; 161 | sic: string; 162 | addressType: string; 163 | } 164 | 165 | interface PhoneNumber { 166 | phoneNumber: string; 167 | company: string; 168 | location: string; 169 | phoneType: string; 170 | isConnected: boolean; 171 | isPublic: boolean; 172 | latitude: string; 173 | longitude: string; 174 | phoneOrder: number; 175 | firstReportedDate: string; 176 | lastReportedDate: string; 177 | publicFirstSeenDate?: string; 178 | totalFirstSeenDate: string; 179 | sourceSummary: any; 180 | } 181 | 182 | interface RelativesSummary { 183 | tahoeId: string; 184 | prefix: string; 185 | firstName: string; 186 | middleName: string; 187 | lastName: string; 188 | suffix: string; 189 | dob: string; 190 | isPrivate: boolean; 191 | isOptedOut: boolean; 192 | isDeceased: boolean; 193 | relativeLevel: string; 194 | relativeType: string; 195 | spouse: number; 196 | sharedHouseholdIds: string[]; 197 | score: number; 198 | oldSpouse: boolean; 199 | } 200 | 201 | interface AssociatesSummary { 202 | tahoeId: string; 203 | prefix: string; 204 | firstName: string; 205 | middleName: string; 206 | lastName: string; 207 | suffix: string; 208 | isPrivate: boolean; 209 | isOptedOut: boolean; 210 | isDeceased: boolean; 211 | dob: string; 212 | score: number; 213 | } 214 | 215 | interface Indicators { 216 | hasBankruptcyRecords: number; 217 | hasBusinessRecords: number; 218 | hasDivorceRecords: number; 219 | hasDomainsRecords: number; 220 | hasEvictionsRecords: number; 221 | hasFeinRecords: number; 222 | hasForeclosuresRecords: number; 223 | hasForeclosuresV2Records: number; 224 | hasJudgmentRecords: number; 225 | hasLienRecords: number; 226 | hasMarriageRecords: number; 227 | hasProfessionalLicenseRecords: number; 228 | hasPropertyRecords: number; 229 | hasVehicleRegistrationsRecords: number; 230 | hasWorkplaceRecords: number; 231 | hasDeaRecords: number; 232 | hasPropertyV2Records: number; 233 | hasUccRecords: number; 234 | hasUnbankedData: number; 235 | hasMobilePhones: number; 236 | hasLandLines: number; 237 | hasEmails: number; 238 | hasAddresses: number; 239 | hasCurrentAddresses: number; 240 | hasHistoricalAddresses: number; 241 | hasDebtRecords: number; 242 | } 243 | 244 | interface PropensityToPayScore { 245 | transactionId: string; 246 | suffix: string; 247 | firstName: string; 248 | middleName: string; 249 | lastName: string; 250 | address: string; 251 | city: string; 252 | state: string; 253 | zip: string; 254 | zip4: string; 255 | measures: any[]; 256 | } 257 | 258 | interface Associate { 259 | tahoeId: string; 260 | name: Name2; 261 | isPublic: boolean; 262 | isOptedOut: boolean; 263 | sparseFlag: number; 264 | isPremium: boolean; 265 | dob: string; 266 | age: number; 267 | datesOfBirth: DatesOfBirth[]; 268 | datesOfDeath: any[]; 269 | deathRecords: DeathRecords; 270 | akas: Aka2[]; 271 | mergedNames: MergedName2[]; 272 | locations: Location2[]; 273 | addresses: Address2[]; 274 | phoneNumbers: PhoneNumber2[]; 275 | emailAddresses: EmailAddress[]; 276 | fullName: string; 277 | driversLicenseDetail: any[]; 278 | hasAdditionalData: boolean; 279 | propensityToPayScore: PropensityToPayScore2; 280 | } 281 | 282 | interface Name2 { 283 | prefix: string; 284 | firstName: string; 285 | middleName: string; 286 | lastName: string; 287 | suffix: string; 288 | rawNames: string[]; 289 | publicFirstSeenDate: string; 290 | totalFirstSeenDate: string; 291 | sourceSummary: any; 292 | } 293 | 294 | interface DatesOfBirth { 295 | age: number; 296 | sourceSummary: any; 297 | } 298 | 299 | interface DeathRecords { 300 | isDeceased: boolean; 301 | sourceSummary: any; 302 | } 303 | 304 | interface Aka2 { 305 | prefix: string; 306 | firstName: string; 307 | middleName: string; 308 | lastName: string; 309 | suffix: string; 310 | rawNames: string[]; 311 | publicFirstSeenDate?: string; 312 | totalFirstSeenDate: string; 313 | sourceSummary: any; 314 | } 315 | 316 | interface MergedName2 { 317 | prefix: string; 318 | firstName: string; 319 | middleName: string; 320 | lastName: string; 321 | suffix: string; 322 | rawNames: string[]; 323 | publicFirstSeenDate: any; 324 | totalFirstSeenDate: any; 325 | sourceSummary: any; 326 | } 327 | 328 | interface Location2 { 329 | city: string; 330 | state: string; 331 | } 332 | 333 | interface Address2 { 334 | isDeliverable: boolean; 335 | isMergedAddress: boolean; 336 | isPublic: boolean; 337 | addressQualityCodes: string[]; 338 | addressHash: string; 339 | houseNumber: string; 340 | streetPreDirection: string; 341 | streetName: string; 342 | streetPostDirection: string; 343 | streetType: string; 344 | unit: string; 345 | unitType?: string; 346 | city: string; 347 | state: string; 348 | county: string; 349 | zip: string; 350 | zip4: string; 351 | latitude: string; 352 | longitude: string; 353 | addressOrder: number; 354 | highRiskMarker: HighRiskMarker2; 355 | propertyIndicator: string; 356 | bldgCode: string; 357 | utilityCode: string; 358 | unitCount: number; 359 | firstReportedDate: string; 360 | lastReportedDate: string; 361 | publicFirstSeenDate: string; 362 | totalFirstSeenDate: string; 363 | phoneNumbers: string[]; 364 | neighbors: any[]; 365 | neighborSummaryRecords: any[]; 366 | fullAddress: string; 367 | sourceSummary: any; 368 | } 369 | 370 | interface HighRiskMarker2 { 371 | isHighRisk: boolean; 372 | sic: string; 373 | addressType: string; 374 | } 375 | 376 | interface PhoneNumber2 { 377 | phoneNumber: string; 378 | company: string; 379 | location: string; 380 | phoneType: string; 381 | isConnected: boolean; 382 | isPublic: boolean; 383 | latitude: string; 384 | longitude: string; 385 | phoneOrder: number; 386 | firstReportedDate: string; 387 | lastReportedDate: string; 388 | publicFirstSeenDate: string; 389 | totalFirstSeenDate: string; 390 | sourceSummary: any; 391 | } 392 | 393 | interface EmailAddress { 394 | emailAddress: string; 395 | emailOrdinal: number; 396 | emailEngagementData: EmailEngagementData; 397 | isPremium: boolean; 398 | nonBusiness: number; 399 | sourceSummary: any; 400 | } 401 | 402 | interface EmailEngagementData { 403 | lastCheckDate?: string; 404 | isGoodDomain: boolean; 405 | isMatched: boolean; 406 | engagementScore: number; 407 | lastTouchDate?: string; 408 | sendTime: number; 409 | bestDayOfTheWeek: string; 410 | bestTimeOfTheDay: string; 411 | frequency: string; 412 | naics: string[]; 413 | isBounce: boolean; 414 | } 415 | 416 | interface PropensityToPayScore2 { 417 | transactionId: string; 418 | suffix: string; 419 | firstName: string; 420 | middleName: string; 421 | lastName: string; 422 | address: string; 423 | city: string; 424 | state: string; 425 | zip: string; 426 | zip4: string; 427 | measures: any[]; 428 | } 429 | 430 | interface Counts { 431 | searchResults: number; 432 | searchResultsOverflow: boolean; 433 | names: number; 434 | socialSecurityNumbers: number; 435 | datesOfBirth: number; 436 | datesOfDeath: number; 437 | deathRecords: number; 438 | addresses: number; 439 | phoneNumbers: number; 440 | emailAddresses: number; 441 | relatives: number; 442 | associates: number; 443 | businessRecords: number; 444 | debtRecords: number; 445 | evictionRecords: number; 446 | foreclosureRecords: number; 447 | foreclosureV2Records: number; 448 | professionalLicenseRecords: number; 449 | expectedCount: number; 450 | } 451 | 452 | interface SmartSearchStatistics { 453 | userInput: any; 454 | criteriaGroupId: any; 455 | isSuccessful: boolean; 456 | successfulPattern: any; 457 | totalTimeInMS: number; 458 | resultCount: number; 459 | patterns: any[]; 460 | searches: any[]; 461 | } 462 | 463 | interface Pagination { 464 | currentPageNumber: number; 465 | resultsPerPage: number; 466 | totalPages: number; 467 | totalResults: number; 468 | } 469 | 470 | interface Error { 471 | inputErrors: any[]; 472 | warnings: string[]; 473 | } 474 | -------------------------------------------------------------------------------- /index.ts: -------------------------------------------------------------------------------- 1 | import dotenv from "dotenv"; 2 | import http from "http"; 3 | 4 | dotenv.config(); 5 | 6 | import express from "express"; 7 | import path from "path"; 8 | import { logger } from "./utils/logger"; 9 | import voice from "./routes/voice"; 10 | 11 | /** 12 | * Web server initialization 13 | */ 14 | 15 | const app = express(); 16 | 17 | app.set("view engine", "ejs"); 18 | 19 | app.set("views", path.join(__dirname, "views")); 20 | 21 | app.disable("view cache"); 22 | 23 | app.use(express.urlencoded({ extended: true })); 24 | 25 | app.use(express.static(path.join(__dirname, "public"))); 26 | 27 | app.use(express.static(path.join(__dirname, "voice-responses"))); 28 | 29 | app.get("/", async (req, res) => { 30 | res.render("pages/index", { 31 | ga4code: process.env.GA4_TRACKING_CODE!, 32 | }); 33 | }); 34 | 35 | app.use("/", voice.routes); 36 | 37 | app.listen(process.env.PORT, () => { 38 | logger.info(`Listening on http://localhost:${process.env.PORT}`); 39 | }); 40 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "liam-neeson-ai", 3 | "version": "1.0.0", 4 | "description": "Call Liam Neeson", 5 | "main": "index.ts", 6 | "author": "https://github.com/MrWebMD", 7 | "license": "MIT", 8 | "scripts": { 9 | "dev": "nodemon index", 10 | "start": "ts-node index" 11 | }, 12 | "dependencies": { 13 | "@types/ejs": "^3.1.5", 14 | "@types/express": "^4.17.21", 15 | "@types/fluent-ffmpeg": "^2.1.24", 16 | "@types/node": "^20.10.5", 17 | "@types/winston": "^2.4.4", 18 | "@types/ws": "^8.5.10", 19 | "dotenv": "^16.3.1", 20 | "ejs": "^3.1.9", 21 | "express": "^4.18.2", 22 | "file-system-cache": "^2.4.4", 23 | "fluent-ffmpeg": "^2.1.2", 24 | "growing-file": "^0.1.3", 25 | "nodemon": "^3.0.2", 26 | "openai": "^4.23.0", 27 | "ts-node": "^10.9.2", 28 | "twilio": "^4.20.0", 29 | "typescript": "^5.3.3", 30 | "uuid": "^9.0.1", 31 | "wavefile": "^11.0.0", 32 | "winston": "^3.11.0", 33 | "ws": "^8.15.1" 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /public/create-openai-key.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrWebMD/liam-ai/bfb290cbcad1086c53580a88fc8a6eb3e7abec92/public/create-openai-key.png -------------------------------------------------------------------------------- /public/eleven-labs-key.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrWebMD/liam-ai/bfb290cbcad1086c53580a88fc8a6eb3e7abec92/public/eleven-labs-key.png -------------------------------------------------------------------------------- /public/endato-api-image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrWebMD/liam-ai/bfb290cbcad1086c53580a88fc8a6eb3e7abec92/public/endato-api-image.png -------------------------------------------------------------------------------- /public/endato-key.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrWebMD/liam-ai/bfb290cbcad1086c53580a88fc8a6eb3e7abec92/public/endato-key.png -------------------------------------------------------------------------------- /public/github-icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /public/liam-banner.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrWebMD/liam-ai/bfb290cbcad1086c53580a88fc8a6eb3e7abec92/public/liam-banner.jpg -------------------------------------------------------------------------------- /public/scratched-bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MrWebMD/liam-ai/bfb290cbcad1086c53580a88fc8a6eb3e7abec92/public/scratched-bg.jpg -------------------------------------------------------------------------------- /public/style.css: -------------------------------------------------------------------------------- 1 | @import url("https://fonts.googleapis.com/css2?family=Pixelify+Sans&family=Roboto:wght@100;300;700&display=swap"); 2 | 3 | body { 4 | font-family: "Roboto", sans-serif; 5 | padding: 0; 6 | margin: 0; 7 | } 8 | 9 | .gradientAnimation { 10 | background: linear-gradient(270deg, #00bb0c, #178a00); 11 | background-size: 400% 400%; 12 | 13 | -webkit-animation: AnimationName 6s ease infinite; 14 | -moz-animation: AnimationName 6s ease infinite; 15 | -o-animation: AnimationName 6s ease infinite; 16 | animation: AnimationName 6s ease infinite; 17 | } 18 | 19 | @-webkit-keyframes AnimationName { 20 | 0% { 21 | background-position: 0% 51%; 22 | } 23 | 50% { 24 | background-position: 100% 50%; 25 | } 26 | 100% { 27 | background-position: 0% 51%; 28 | } 29 | } 30 | @-moz-keyframes AnimationName { 31 | 0% { 32 | background-position: 0% 51%; 33 | } 34 | 50% { 35 | background-position: 100% 50%; 36 | } 37 | 100% { 38 | background-position: 0% 51%; 39 | } 40 | } 41 | @-o-keyframes AnimationName { 42 | 0% { 43 | background-position: 0% 51%; 44 | } 45 | 50% { 46 | background-position: 100% 50%; 47 | } 48 | 100% { 49 | background-position: 0% 51%; 50 | } 51 | } 52 | @keyframes AnimationName { 53 | 0% { 54 | background-position: 0% 51%; 55 | } 56 | 50% { 57 | background-position: 100% 50%; 58 | } 59 | 100% { 60 | background-position: 0% 51%; 61 | } 62 | } 63 | 64 | img { 65 | width: 100%; 66 | } 67 | .hero { 68 | max-width: 100vw; 69 | min-height: 100vh; 70 | display: flex; 71 | overflow: hidden; 72 | } 73 | .hero__desc { 74 | font-size: 25px; 75 | } 76 | .hero__card { 77 | width: 40vw; 78 | min-width: 400px; 79 | padding: 20px; 80 | display: flex; 81 | flex-direction: column; 82 | justify-content: center; 83 | } 84 | .hero__title { 85 | font-size: 50px; 86 | margin: 0px; 87 | font-style: normal; 88 | } 89 | a { 90 | text-decoration: none; 91 | } 92 | .hero__bg { 93 | width: 100vw; 94 | max-width: 100%; 95 | height: 100%; 96 | position: absolute; 97 | right: 0; 98 | top: 0; 99 | z-index: -1; 100 | filter: opacity(0.2); 101 | } 102 | .hero__img { 103 | max-width: 300px; 104 | } 105 | 106 | .githubLink { 107 | background-image: url("github-icon.svg"); 108 | background-position: center; 109 | background-size: contain; 110 | filter: contrast(0); 111 | width: 60px; 112 | height: 60px; 113 | cursor: pointer; 114 | display: block; 115 | position: fixed; 116 | top: 10px; 117 | right: 10px; 118 | } 119 | .btn { 120 | width: 100%; 121 | max-width: 300px; 122 | padding: 5px 0px; 123 | margin: 10px 0; 124 | cursor: pointer; 125 | display: flex; 126 | flex-direction: row; 127 | align-items: center; 128 | justify-content: center; 129 | text-decoration: none; 130 | box-shadow: 0px 10px 10px rgba(0, 0, 0, 0.1); 131 | text-align: center; 132 | font-family: "Pixelify Sans", sans-serif; 133 | color: black; 134 | border: 5px solid black; 135 | background-color: white; 136 | font-weight: bold; 137 | font-size: 40px; 138 | border-radius: 50px; 139 | position: relative; 140 | overflow: hidden; 141 | border-style: dashed; 142 | } 143 | .btn__spacer { 144 | flex-grow: 1; 145 | } 146 | .btn:hover { 147 | background-color: black; 148 | color: white; 149 | } 150 | .btn--brightOnHover:hover { 151 | filter: brightness(1.2); 152 | } 153 | .btn--green { 154 | background-color: var(--green); 155 | } 156 | 157 | :root { 158 | --invader-size: 30px; 159 | } 160 | 161 | .spaceInvader { 162 | display: inline-block; 163 | position: relative; 164 | } 165 | .spaceInvader__character { 166 | position: absolute; 167 | animation: spaceInvader 6s linear infinite; 168 | height: var(--invader-size); 169 | width: var(--invader-size); 170 | } 171 | .spaceInvader__svg { 172 | position: absolute; 173 | margin: 0; 174 | padding: 0; 175 | left: 0; 176 | width: var(--invader-size); 177 | height: var(--invader-size); 178 | } 179 | .spaceInvader__bullet { 180 | width: 5px; 181 | height: 8px; 182 | position: absolute; 183 | background-color: black; 184 | animation: fireBullet 2.5s linear infinite; 185 | right: 0; 186 | left: 0; 187 | margin: 0 auto; 188 | } 189 | @keyframes fireBullet { 190 | 0% { 191 | top: 100%; 192 | opacity: 0%; 193 | } 194 | 70% { 195 | top: -100px; 196 | opacity: 100%; 197 | } 198 | 100% { 199 | top: -100px; 200 | } 201 | } 202 | @keyframes spaceInvader { 203 | 0% { 204 | left: 0%; 205 | } 206 | 50% { 207 | left: calc(100% - var(--invader-size)); 208 | } 209 | 100% { 210 | left: 0%; 211 | } 212 | } 213 | @media screen and (max-width: 600px) { 214 | .hero__card { 215 | padding: 0; 216 | border: 0px; 217 | min-height: 60vh; 218 | } 219 | .hero { 220 | flex-direction: column; 221 | justify-content: center; 222 | align-items: center; 223 | position: relative; 224 | } 225 | 226 | .hero__desc { 227 | font-size: 19px; 228 | } 229 | .hero__bg { 230 | left: 0; 231 | } 232 | .btn { 233 | font-size: 40px; 234 | margin: 10px auto; 235 | } 236 | .hero__card { 237 | max-width: unset; 238 | min-width: unset; 239 | width: unset; 240 | text-align: center; 241 | background-color: unset; 242 | padding: 20px; 243 | border-radius: 5px; 244 | } 245 | } 246 | -------------------------------------------------------------------------------- /routes/voice.ts: -------------------------------------------------------------------------------- 1 | import Router from "express"; 2 | 3 | import { voiceController } from "../controllers/voice"; 4 | 5 | const router = Router(); 6 | 7 | router.post(process.env.VOICE_ENDPOINT!, voiceController); 8 | 9 | export default { 10 | routes: router, 11 | }; 12 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "ts-node": { "files": true }, 3 | "files": ["index.ts", "index.d.ts"], 4 | "compilerOptions": { 5 | "module": "NodeNext", 6 | "moduleResolution": "NodeNext", 7 | "target": "ES2020", 8 | "esModuleInterop": true 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /utils/cache.ts: -------------------------------------------------------------------------------- 1 | import { Cache } from "file-system-cache"; 2 | import path from "path"; 3 | 4 | export const cache = new Cache({ 5 | basePath: path.join(process.cwd(), ".cache"), 6 | ns: "lookups", 7 | hash: "sha1", 8 | ttl: 60 * 60 * 24 * 30, 9 | }); 10 | -------------------------------------------------------------------------------- /utils/logger.ts: -------------------------------------------------------------------------------- 1 | import winston from "winston"; 2 | 3 | import path from "path"; 4 | 5 | const { combine, timestamp, colorize, printf } = winston.format; 6 | 7 | export const logger = winston.createLogger({ 8 | level: process.env.LOG_LEVEL || "info", 9 | format: combine( 10 | colorize({ all: true }), 11 | timestamp({ 12 | format: "YYYY-MM-DD hh:mm:ss.SSS A", 13 | }), 14 | printf((info) => `[${info.timestamp}] ${info.level}: ${info.message}`) 15 | ), 16 | transports: [ 17 | new winston.transports.Console(), 18 | new winston.transports.File({ 19 | filename: path.join(process.cwd(), "call-log.log"), 20 | }), 21 | ], 22 | }); 23 | -------------------------------------------------------------------------------- /views/pages/index.ejs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | LiamAI 10 | 11 | 12 | 13 | 22 | 23 | 24 |
25 |
26 |
27 |

28 | LiamAI powered by
29 | 30 | 31 |   32 |

33 |

Experience the Thrill: Let AI Liam Neeson's Harmless Threats Entertain You! Calls are Recorded.

34 | 35 | 36 |
37 |
38 |
39 | 40 | 41 | 42 | 43 | 47 | 48 | 49 |
50 |
51 |
Call
52 |
53 |
54 | By calling you are consenting to being recorded. 55 | 56 |
57 | Made By MrWebMD 58 |
59 |
60 | 61 | 62 | 63 | 64 | 77 | 78 | 79 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@colors/colors@1.6.0", "@colors/colors@^1.6.0": 6 | version "1.6.0" 7 | resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.6.0.tgz#ec6cd237440700bc23ca23087f513c75508958b0" 8 | integrity sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA== 9 | 10 | "@cspotcode/source-map-support@^0.8.0": 11 | version "0.8.1" 12 | resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" 13 | integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== 14 | dependencies: 15 | "@jridgewell/trace-mapping" "0.3.9" 16 | 17 | "@dabh/diagnostics@^2.0.2": 18 | version "2.0.3" 19 | resolved "https://registry.yarnpkg.com/@dabh/diagnostics/-/diagnostics-2.0.3.tgz#7f7e97ee9a725dffc7808d93668cc984e1dc477a" 20 | integrity sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA== 21 | dependencies: 22 | colorspace "1.1.x" 23 | enabled "2.0.x" 24 | kuler "^2.0.0" 25 | 26 | "@jridgewell/resolve-uri@^3.0.3": 27 | version "3.1.1" 28 | resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" 29 | integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== 30 | 31 | "@jridgewell/sourcemap-codec@^1.4.10": 32 | version "1.4.15" 33 | resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" 34 | integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== 35 | 36 | "@jridgewell/trace-mapping@0.3.9": 37 | version "0.3.9" 38 | resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" 39 | integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== 40 | dependencies: 41 | "@jridgewell/resolve-uri" "^3.0.3" 42 | "@jridgewell/sourcemap-codec" "^1.4.10" 43 | 44 | "@tsconfig/node10@^1.0.7": 45 | version "1.0.9" 46 | resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2" 47 | integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA== 48 | 49 | "@tsconfig/node12@^1.0.7": 50 | version "1.0.11" 51 | resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" 52 | integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== 53 | 54 | "@tsconfig/node14@^1.0.0": 55 | version "1.0.3" 56 | resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" 57 | integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== 58 | 59 | "@tsconfig/node16@^1.0.2": 60 | version "1.0.4" 61 | resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" 62 | integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== 63 | 64 | "@types/body-parser@*": 65 | version "1.19.5" 66 | resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.5.tgz#04ce9a3b677dc8bd681a17da1ab9835dc9d3ede4" 67 | integrity sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg== 68 | dependencies: 69 | "@types/connect" "*" 70 | "@types/node" "*" 71 | 72 | "@types/connect@*": 73 | version "3.4.38" 74 | resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.38.tgz#5ba7f3bc4fbbdeaff8dded952e5ff2cc53f8d858" 75 | integrity sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug== 76 | dependencies: 77 | "@types/node" "*" 78 | 79 | "@types/ejs@^3.1.5": 80 | version "3.1.5" 81 | resolved "https://registry.yarnpkg.com/@types/ejs/-/ejs-3.1.5.tgz#49d738257cc73bafe45c13cb8ff240683b4d5117" 82 | integrity sha512-nv+GSx77ZtXiJzwKdsASqi+YQ5Z7vwHsTP0JY2SiQgjGckkBRKZnk8nIM+7oUZ1VCtuTz0+By4qVR7fqzp/Dfg== 83 | 84 | "@types/express-serve-static-core@^4.17.33": 85 | version "4.17.41" 86 | resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.41.tgz#5077defa630c2e8d28aa9ffc2c01c157c305bef6" 87 | integrity sha512-OaJ7XLaelTgrvlZD8/aa0vvvxZdUmlCn6MtWeB7TkiKW70BQLc9XEPpDLPdbo52ZhXUCrznlWdCHWxJWtdyajA== 88 | dependencies: 89 | "@types/node" "*" 90 | "@types/qs" "*" 91 | "@types/range-parser" "*" 92 | "@types/send" "*" 93 | 94 | "@types/express@^4.17.21": 95 | version "4.17.21" 96 | resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.21.tgz#c26d4a151e60efe0084b23dc3369ebc631ed192d" 97 | integrity sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ== 98 | dependencies: 99 | "@types/body-parser" "*" 100 | "@types/express-serve-static-core" "^4.17.33" 101 | "@types/qs" "*" 102 | "@types/serve-static" "*" 103 | 104 | "@types/fluent-ffmpeg@^2.1.24": 105 | version "2.1.24" 106 | resolved "https://registry.yarnpkg.com/@types/fluent-ffmpeg/-/fluent-ffmpeg-2.1.24.tgz#f53c57700bc4360ac638554545c8da2c465434c1" 107 | integrity sha512-g5oQO8Jgi2kFS3tTub7wLvfLztr1s8tdXmRd8PiL/hLMLzTIAyMR2sANkTggM/rdEDAg3d63nYRRVepwBiCw5A== 108 | dependencies: 109 | "@types/node" "*" 110 | 111 | "@types/fs-extra@11.0.1": 112 | version "11.0.1" 113 | resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-11.0.1.tgz#f542ec47810532a8a252127e6e105f487e0a6ea5" 114 | integrity sha512-MxObHvNl4A69ofaTRU8DFqvgzzv8s9yRtaPPm5gud9HDNvpB3GPQFvNuTWAI59B9huVGV5jXYJwbCsmBsOGYWA== 115 | dependencies: 116 | "@types/jsonfile" "*" 117 | "@types/node" "*" 118 | 119 | "@types/http-errors@*": 120 | version "2.0.4" 121 | resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-2.0.4.tgz#7eb47726c391b7345a6ec35ad7f4de469cf5ba4f" 122 | integrity sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA== 123 | 124 | "@types/jsonfile@*": 125 | version "6.1.4" 126 | resolved "https://registry.yarnpkg.com/@types/jsonfile/-/jsonfile-6.1.4.tgz#614afec1a1164e7d670b4a7ad64df3e7beb7b702" 127 | integrity sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ== 128 | dependencies: 129 | "@types/node" "*" 130 | 131 | "@types/mime@*": 132 | version "3.0.4" 133 | resolved "https://registry.yarnpkg.com/@types/mime/-/mime-3.0.4.tgz#2198ac274de6017b44d941e00261d5bc6a0e0a45" 134 | integrity sha512-iJt33IQnVRkqeqC7PzBHPTC6fDlRNRW8vjrgqtScAhrmMwe8c4Eo7+fUGTa+XdWrpEgpyKWMYmi2dIwMAYRzPw== 135 | 136 | "@types/mime@^1": 137 | version "1.3.5" 138 | resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.5.tgz#1ef302e01cf7d2b5a0fa526790c9123bf1d06690" 139 | integrity sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w== 140 | 141 | "@types/node-fetch@^2.6.4": 142 | version "2.6.9" 143 | resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.9.tgz#15f529d247f1ede1824f7e7acdaa192d5f28071e" 144 | integrity sha512-bQVlnMLFJ2d35DkPNjEPmd9ueO/rh5EiaZt2bhqiSarPjZIuIV6bPQVqcrEyvNo+AfTrRGVazle1tl597w3gfA== 145 | dependencies: 146 | "@types/node" "*" 147 | form-data "^4.0.0" 148 | 149 | "@types/node@*", "@types/node@^20.10.5": 150 | version "20.10.5" 151 | resolved "https://registry.yarnpkg.com/@types/node/-/node-20.10.5.tgz#47ad460b514096b7ed63a1dae26fad0914ed3ab2" 152 | integrity sha512-nNPsNE65wjMxEKI93yOP+NPGGBJz/PoN3kZsVLee0XMiJolxSekEVD8wRwBUBqkwc7UWop0edW50yrCQW4CyRw== 153 | dependencies: 154 | undici-types "~5.26.4" 155 | 156 | "@types/node@^18.11.18": 157 | version "18.19.3" 158 | resolved "https://registry.yarnpkg.com/@types/node/-/node-18.19.3.tgz#e4723c4cb385641d61b983f6fe0b716abd5f8fc0" 159 | integrity sha512-k5fggr14DwAytoA/t8rPrIz++lXK7/DqckthCmoZOKNsEbJkId4Z//BqgApXBUGrGddrigYa1oqheo/7YmW4rg== 160 | dependencies: 161 | undici-types "~5.26.4" 162 | 163 | "@types/qs@*": 164 | version "6.9.10" 165 | resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.10.tgz#0af26845b5067e1c9a622658a51f60a3934d51e8" 166 | integrity sha512-3Gnx08Ns1sEoCrWssEgTSJs/rsT2vhGP+Ja9cnnk9k4ALxinORlQneLXFeFKOTJMOeZUFD1s7w+w2AphTpvzZw== 167 | 168 | "@types/ramda@0.29.3": 169 | version "0.29.3" 170 | resolved "https://registry.yarnpkg.com/@types/ramda/-/ramda-0.29.3.tgz#6e4d4066df900a3456cf402bcef9b78b6990a754" 171 | integrity sha512-Yh/RHkjN0ru6LVhSQtTkCRo6HXkfL9trot/2elzM/yXLJmbLm2v6kJc8yftTnwv1zvUob6TEtqI2cYjdqG3U0Q== 172 | dependencies: 173 | types-ramda "^0.29.4" 174 | 175 | "@types/range-parser@*": 176 | version "1.2.7" 177 | resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.7.tgz#50ae4353eaaddc04044279812f52c8c65857dbcb" 178 | integrity sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ== 179 | 180 | "@types/send@*": 181 | version "0.17.4" 182 | resolved "https://registry.yarnpkg.com/@types/send/-/send-0.17.4.tgz#6619cd24e7270793702e4e6a4b958a9010cfc57a" 183 | integrity sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA== 184 | dependencies: 185 | "@types/mime" "^1" 186 | "@types/node" "*" 187 | 188 | "@types/serve-static@*": 189 | version "1.15.5" 190 | resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.5.tgz#15e67500ec40789a1e8c9defc2d32a896f05b033" 191 | integrity sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ== 192 | dependencies: 193 | "@types/http-errors" "*" 194 | "@types/mime" "*" 195 | "@types/node" "*" 196 | 197 | "@types/triple-beam@^1.3.2": 198 | version "1.3.5" 199 | resolved "https://registry.yarnpkg.com/@types/triple-beam/-/triple-beam-1.3.5.tgz#74fef9ffbaa198eb8b588be029f38b00299caa2c" 200 | integrity sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw== 201 | 202 | "@types/winston@^2.4.4": 203 | version "2.4.4" 204 | resolved "https://registry.yarnpkg.com/@types/winston/-/winston-2.4.4.tgz#48cc744b7b42fad74b9a2e8490e0112bd9a3d08d" 205 | integrity sha512-BVGCztsypW8EYwJ+Hq+QNYiT/MUyCif0ouBH+flrY66O5W+KIXAMML6E/0fJpm7VjIzgangahl5S03bJJQGrZw== 206 | dependencies: 207 | winston "*" 208 | 209 | "@types/ws@^8.5.10": 210 | version "8.5.10" 211 | resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.10.tgz#4acfb517970853fa6574a3a6886791d04a396787" 212 | integrity sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A== 213 | dependencies: 214 | "@types/node" "*" 215 | 216 | abbrev@1: 217 | version "1.1.1" 218 | resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" 219 | integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== 220 | 221 | abort-controller@^3.0.0: 222 | version "3.0.0" 223 | resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" 224 | integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== 225 | dependencies: 226 | event-target-shim "^5.0.0" 227 | 228 | accepts@~1.3.8: 229 | version "1.3.8" 230 | resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" 231 | integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== 232 | dependencies: 233 | mime-types "~2.1.34" 234 | negotiator "0.6.3" 235 | 236 | acorn-walk@^8.1.1: 237 | version "8.3.1" 238 | resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.1.tgz#2f10f5b69329d90ae18c58bf1fa8fccd8b959a43" 239 | integrity sha512-TgUZgYvqZprrl7YldZNoa9OciCAyZR+Ejm9eXzKCmjsF5IKp/wgQ7Z/ZpjpGTIUPwrHQIcYeI8qDh4PsEwxMbw== 240 | 241 | acorn@^8.4.1: 242 | version "8.11.2" 243 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.2.tgz#ca0d78b51895be5390a5903c5b3bdcdaf78ae40b" 244 | integrity sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w== 245 | 246 | agent-base@6: 247 | version "6.0.2" 248 | resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" 249 | integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== 250 | dependencies: 251 | debug "4" 252 | 253 | agentkeepalive@^4.2.1: 254 | version "4.5.0" 255 | resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.5.0.tgz#2673ad1389b3c418c5a20c5d7364f93ca04be923" 256 | integrity sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew== 257 | dependencies: 258 | humanize-ms "^1.2.1" 259 | 260 | ansi-styles@^4.1.0: 261 | version "4.3.0" 262 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" 263 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== 264 | dependencies: 265 | color-convert "^2.0.1" 266 | 267 | anymatch@~3.1.2: 268 | version "3.1.3" 269 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" 270 | integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== 271 | dependencies: 272 | normalize-path "^3.0.0" 273 | picomatch "^2.0.4" 274 | 275 | arg@^4.1.0: 276 | version "4.1.3" 277 | resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" 278 | integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== 279 | 280 | array-flatten@1.1.1: 281 | version "1.1.1" 282 | resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" 283 | integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== 284 | 285 | async@>=0.2.9, async@^3.2.3: 286 | version "3.2.5" 287 | resolved "https://registry.yarnpkg.com/async/-/async-3.2.5.tgz#ebd52a8fdaf7a2289a24df399f8d8485c8a46b66" 288 | integrity sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg== 289 | 290 | asynckit@^0.4.0: 291 | version "0.4.0" 292 | resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" 293 | integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== 294 | 295 | axios@^1.6.0: 296 | version "1.6.2" 297 | resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.2.tgz#de67d42c755b571d3e698df1b6504cde9b0ee9f2" 298 | integrity sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A== 299 | dependencies: 300 | follow-redirects "^1.15.0" 301 | form-data "^4.0.0" 302 | proxy-from-env "^1.1.0" 303 | 304 | balanced-match@^1.0.0: 305 | version "1.0.2" 306 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" 307 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== 308 | 309 | base-64@^0.1.0: 310 | version "0.1.0" 311 | resolved "https://registry.yarnpkg.com/base-64/-/base-64-0.1.0.tgz#780a99c84e7d600260361511c4877613bf24f6bb" 312 | integrity sha512-Y5gU45svrR5tI2Vt/X9GPd3L0HNIKzGu202EjxrXMpuc2V2CiKgemAbUUsqYmZJvPtCXoUKjNZwBJzsNScUbXA== 313 | 314 | binary-extensions@^2.0.0: 315 | version "2.2.0" 316 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" 317 | integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== 318 | 319 | body-parser@1.20.1: 320 | version "1.20.1" 321 | resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.1.tgz#b1812a8912c195cd371a3ee5e66faa2338a5c668" 322 | integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw== 323 | dependencies: 324 | bytes "3.1.2" 325 | content-type "~1.0.4" 326 | debug "2.6.9" 327 | depd "2.0.0" 328 | destroy "1.2.0" 329 | http-errors "2.0.0" 330 | iconv-lite "0.4.24" 331 | on-finished "2.4.1" 332 | qs "6.11.0" 333 | raw-body "2.5.1" 334 | type-is "~1.6.18" 335 | unpipe "1.0.0" 336 | 337 | brace-expansion@^1.1.7: 338 | version "1.1.11" 339 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 340 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 341 | dependencies: 342 | balanced-match "^1.0.0" 343 | concat-map "0.0.1" 344 | 345 | brace-expansion@^2.0.1: 346 | version "2.0.1" 347 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" 348 | integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== 349 | dependencies: 350 | balanced-match "^1.0.0" 351 | 352 | braces@~3.0.2: 353 | version "3.0.2" 354 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" 355 | integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== 356 | dependencies: 357 | fill-range "^7.0.1" 358 | 359 | buffer-equal-constant-time@1.0.1: 360 | version "1.0.1" 361 | resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819" 362 | integrity sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA== 363 | 364 | bytes@3.1.2: 365 | version "3.1.2" 366 | resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" 367 | integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== 368 | 369 | call-bind@^1.0.0: 370 | version "1.0.5" 371 | resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.5.tgz#6fa2b7845ce0ea49bf4d8b9ef64727a2c2e2e513" 372 | integrity sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ== 373 | dependencies: 374 | function-bind "^1.1.2" 375 | get-intrinsic "^1.2.1" 376 | set-function-length "^1.1.1" 377 | 378 | chalk@^4.0.2: 379 | version "4.1.2" 380 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" 381 | integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== 382 | dependencies: 383 | ansi-styles "^4.1.0" 384 | supports-color "^7.1.0" 385 | 386 | charenc@0.0.2: 387 | version "0.0.2" 388 | resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667" 389 | integrity sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA== 390 | 391 | chokidar@^3.5.2: 392 | version "3.5.3" 393 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" 394 | integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== 395 | dependencies: 396 | anymatch "~3.1.2" 397 | braces "~3.0.2" 398 | glob-parent "~5.1.2" 399 | is-binary-path "~2.1.0" 400 | is-glob "~4.0.1" 401 | normalize-path "~3.0.0" 402 | readdirp "~3.6.0" 403 | optionalDependencies: 404 | fsevents "~2.3.2" 405 | 406 | color-convert@^1.9.3: 407 | version "1.9.3" 408 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" 409 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== 410 | dependencies: 411 | color-name "1.1.3" 412 | 413 | color-convert@^2.0.1: 414 | version "2.0.1" 415 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" 416 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== 417 | dependencies: 418 | color-name "~1.1.4" 419 | 420 | color-name@1.1.3: 421 | version "1.1.3" 422 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 423 | integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== 424 | 425 | color-name@^1.0.0, color-name@~1.1.4: 426 | version "1.1.4" 427 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" 428 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== 429 | 430 | color-string@^1.6.0: 431 | version "1.9.1" 432 | resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4" 433 | integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== 434 | dependencies: 435 | color-name "^1.0.0" 436 | simple-swizzle "^0.2.2" 437 | 438 | color@^3.1.3: 439 | version "3.2.1" 440 | resolved "https://registry.yarnpkg.com/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164" 441 | integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA== 442 | dependencies: 443 | color-convert "^1.9.3" 444 | color-string "^1.6.0" 445 | 446 | colorspace@1.1.x: 447 | version "1.1.4" 448 | resolved "https://registry.yarnpkg.com/colorspace/-/colorspace-1.1.4.tgz#8d442d1186152f60453bf8070cd66eb364e59243" 449 | integrity sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w== 450 | dependencies: 451 | color "^3.1.3" 452 | text-hex "1.0.x" 453 | 454 | combined-stream@^1.0.8: 455 | version "1.0.8" 456 | resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" 457 | integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== 458 | dependencies: 459 | delayed-stream "~1.0.0" 460 | 461 | concat-map@0.0.1: 462 | version "0.0.1" 463 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 464 | integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== 465 | 466 | content-disposition@0.5.4: 467 | version "0.5.4" 468 | resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" 469 | integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== 470 | dependencies: 471 | safe-buffer "5.2.1" 472 | 473 | content-type@~1.0.4: 474 | version "1.0.5" 475 | resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" 476 | integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== 477 | 478 | cookie-signature@1.0.6: 479 | version "1.0.6" 480 | resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" 481 | integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== 482 | 483 | cookie@0.5.0: 484 | version "0.5.0" 485 | resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" 486 | integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== 487 | 488 | create-require@^1.1.0: 489 | version "1.1.1" 490 | resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" 491 | integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== 492 | 493 | crypt@0.0.2: 494 | version "0.0.2" 495 | resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" 496 | integrity sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow== 497 | 498 | dayjs@^1.11.9: 499 | version "1.11.10" 500 | resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.10.tgz#68acea85317a6e164457d6d6947564029a6a16a0" 501 | integrity sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ== 502 | 503 | debug@2.6.9: 504 | version "2.6.9" 505 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" 506 | integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== 507 | dependencies: 508 | ms "2.0.0" 509 | 510 | debug@4, debug@^4: 511 | version "4.3.4" 512 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" 513 | integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== 514 | dependencies: 515 | ms "2.1.2" 516 | 517 | define-data-property@^1.1.1: 518 | version "1.1.1" 519 | resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.1.tgz#c35f7cd0ab09883480d12ac5cb213715587800b3" 520 | integrity sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ== 521 | dependencies: 522 | get-intrinsic "^1.2.1" 523 | gopd "^1.0.1" 524 | has-property-descriptors "^1.0.0" 525 | 526 | delayed-stream@~1.0.0: 527 | version "1.0.0" 528 | resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" 529 | integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== 530 | 531 | depd@2.0.0: 532 | version "2.0.0" 533 | resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" 534 | integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== 535 | 536 | destroy@1.2.0: 537 | version "1.2.0" 538 | resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" 539 | integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== 540 | 541 | diff@^4.0.1: 542 | version "4.0.2" 543 | resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" 544 | integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== 545 | 546 | digest-fetch@^1.3.0: 547 | version "1.3.0" 548 | resolved "https://registry.yarnpkg.com/digest-fetch/-/digest-fetch-1.3.0.tgz#898e69264d00012a23cf26e8a3e40320143fc661" 549 | integrity sha512-CGJuv6iKNM7QyZlM2T3sPAdZWd/p9zQiRNS9G+9COUCwzWFTs0Xp8NF5iePx7wtvhDykReiRRrSeNb4oMmB8lA== 550 | dependencies: 551 | base-64 "^0.1.0" 552 | md5 "^2.3.0" 553 | 554 | dotenv@^16.3.1: 555 | version "16.3.1" 556 | resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.3.1.tgz#369034de7d7e5b120972693352a3bf112172cc3e" 557 | integrity sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ== 558 | 559 | ecdsa-sig-formatter@1.0.11: 560 | version "1.0.11" 561 | resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz#ae0f0fa2d85045ef14a817daa3ce9acd0489e5bf" 562 | integrity sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ== 563 | dependencies: 564 | safe-buffer "^5.0.1" 565 | 566 | ee-first@1.1.1: 567 | version "1.1.1" 568 | resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" 569 | integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== 570 | 571 | ejs@^3.1.9: 572 | version "3.1.9" 573 | resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.9.tgz#03c9e8777fe12686a9effcef22303ca3d8eeb361" 574 | integrity sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ== 575 | dependencies: 576 | jake "^10.8.5" 577 | 578 | enabled@2.0.x: 579 | version "2.0.0" 580 | resolved "https://registry.yarnpkg.com/enabled/-/enabled-2.0.0.tgz#f9dd92ec2d6f4bbc0d5d1e64e21d61cd4665e7c2" 581 | integrity sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ== 582 | 583 | encodeurl@~1.0.2: 584 | version "1.0.2" 585 | resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" 586 | integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== 587 | 588 | escape-html@~1.0.3: 589 | version "1.0.3" 590 | resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" 591 | integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== 592 | 593 | etag@~1.8.1: 594 | version "1.8.1" 595 | resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" 596 | integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== 597 | 598 | event-target-shim@^5.0.0: 599 | version "5.0.1" 600 | resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" 601 | integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== 602 | 603 | express@^4.18.2: 604 | version "4.18.2" 605 | resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59" 606 | integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ== 607 | dependencies: 608 | accepts "~1.3.8" 609 | array-flatten "1.1.1" 610 | body-parser "1.20.1" 611 | content-disposition "0.5.4" 612 | content-type "~1.0.4" 613 | cookie "0.5.0" 614 | cookie-signature "1.0.6" 615 | debug "2.6.9" 616 | depd "2.0.0" 617 | encodeurl "~1.0.2" 618 | escape-html "~1.0.3" 619 | etag "~1.8.1" 620 | finalhandler "1.2.0" 621 | fresh "0.5.2" 622 | http-errors "2.0.0" 623 | merge-descriptors "1.0.1" 624 | methods "~1.1.2" 625 | on-finished "2.4.1" 626 | parseurl "~1.3.3" 627 | path-to-regexp "0.1.7" 628 | proxy-addr "~2.0.7" 629 | qs "6.11.0" 630 | range-parser "~1.2.1" 631 | safe-buffer "5.2.1" 632 | send "0.18.0" 633 | serve-static "1.15.0" 634 | setprototypeof "1.2.0" 635 | statuses "2.0.1" 636 | type-is "~1.6.18" 637 | utils-merge "1.0.1" 638 | vary "~1.1.2" 639 | 640 | fecha@^4.2.0: 641 | version "4.2.3" 642 | resolved "https://registry.yarnpkg.com/fecha/-/fecha-4.2.3.tgz#4d9ccdbc61e8629b259fdca67e65891448d569fd" 643 | integrity sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw== 644 | 645 | file-system-cache@^2.4.4: 646 | version "2.4.4" 647 | resolved "https://registry.yarnpkg.com/file-system-cache/-/file-system-cache-2.4.4.tgz#90eb72960e3d7b72d09768d4d4262c98f8d206b6" 648 | integrity sha512-vCYhn8pb5nlC3Gs2FFCOkmf4NEg2Ym3ulJwkmS9o6p9oRShGj6CwTMFvpgZihBlsh373NaM0XgAgDHXQIlS4LQ== 649 | dependencies: 650 | "@types/fs-extra" "11.0.1" 651 | "@types/ramda" "0.29.3" 652 | fs-extra "11.1.1" 653 | ramda "0.29.0" 654 | 655 | filelist@^1.0.4: 656 | version "1.0.4" 657 | resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.4.tgz#f78978a1e944775ff9e62e744424f215e58352b5" 658 | integrity sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q== 659 | dependencies: 660 | minimatch "^5.0.1" 661 | 662 | fill-range@^7.0.1: 663 | version "7.0.1" 664 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" 665 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== 666 | dependencies: 667 | to-regex-range "^5.0.1" 668 | 669 | finalhandler@1.2.0: 670 | version "1.2.0" 671 | resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" 672 | integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== 673 | dependencies: 674 | debug "2.6.9" 675 | encodeurl "~1.0.2" 676 | escape-html "~1.0.3" 677 | on-finished "2.4.1" 678 | parseurl "~1.3.3" 679 | statuses "2.0.1" 680 | unpipe "~1.0.0" 681 | 682 | fluent-ffmpeg@^2.1.2: 683 | version "2.1.2" 684 | resolved "https://registry.yarnpkg.com/fluent-ffmpeg/-/fluent-ffmpeg-2.1.2.tgz#c952de2240f812ebda0aa8006d7776ee2acf7d74" 685 | integrity sha512-IZTB4kq5GK0DPp7sGQ0q/BWurGHffRtQQwVkiqDgeO6wYJLLV5ZhgNOQ65loZxxuPMKZKZcICCUnaGtlxBiR0Q== 686 | dependencies: 687 | async ">=0.2.9" 688 | which "^1.1.1" 689 | 690 | fn.name@1.x.x: 691 | version "1.1.0" 692 | resolved "https://registry.yarnpkg.com/fn.name/-/fn.name-1.1.0.tgz#26cad8017967aea8731bc42961d04a3d5988accc" 693 | integrity sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw== 694 | 695 | follow-redirects@^1.15.0: 696 | version "1.15.3" 697 | resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.3.tgz#fe2f3ef2690afce7e82ed0b44db08165b207123a" 698 | integrity sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q== 699 | 700 | form-data-encoder@1.7.2: 701 | version "1.7.2" 702 | resolved "https://registry.yarnpkg.com/form-data-encoder/-/form-data-encoder-1.7.2.tgz#1f1ae3dccf58ed4690b86d87e4f57c654fbab040" 703 | integrity sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A== 704 | 705 | form-data@^4.0.0: 706 | version "4.0.0" 707 | resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" 708 | integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== 709 | dependencies: 710 | asynckit "^0.4.0" 711 | combined-stream "^1.0.8" 712 | mime-types "^2.1.12" 713 | 714 | formdata-node@^4.3.2: 715 | version "4.4.1" 716 | resolved "https://registry.yarnpkg.com/formdata-node/-/formdata-node-4.4.1.tgz#23f6a5cb9cb55315912cbec4ff7b0f59bbd191e2" 717 | integrity sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ== 718 | dependencies: 719 | node-domexception "1.0.0" 720 | web-streams-polyfill "4.0.0-beta.3" 721 | 722 | forwarded@0.2.0: 723 | version "0.2.0" 724 | resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" 725 | integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== 726 | 727 | fresh@0.5.2: 728 | version "0.5.2" 729 | resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" 730 | integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== 731 | 732 | fs-extra@11.1.1: 733 | version "11.1.1" 734 | resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.1.1.tgz#da69f7c39f3b002378b0954bb6ae7efdc0876e2d" 735 | integrity sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ== 736 | dependencies: 737 | graceful-fs "^4.2.0" 738 | jsonfile "^6.0.1" 739 | universalify "^2.0.0" 740 | 741 | fsevents@~2.3.2: 742 | version "2.3.3" 743 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" 744 | integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== 745 | 746 | function-bind@^1.1.2: 747 | version "1.1.2" 748 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" 749 | integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== 750 | 751 | get-intrinsic@^1.0.2, get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2: 752 | version "1.2.2" 753 | resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.2.tgz#281b7622971123e1ef4b3c90fd7539306da93f3b" 754 | integrity sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA== 755 | dependencies: 756 | function-bind "^1.1.2" 757 | has-proto "^1.0.1" 758 | has-symbols "^1.0.3" 759 | hasown "^2.0.0" 760 | 761 | glob-parent@~5.1.2: 762 | version "5.1.2" 763 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" 764 | integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== 765 | dependencies: 766 | is-glob "^4.0.1" 767 | 768 | gopd@^1.0.1: 769 | version "1.0.1" 770 | resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" 771 | integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== 772 | dependencies: 773 | get-intrinsic "^1.1.3" 774 | 775 | graceful-fs@^4.1.6, graceful-fs@^4.2.0: 776 | version "4.2.11" 777 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" 778 | integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== 779 | 780 | growing-file@^0.1.3: 781 | version "0.1.3" 782 | resolved "https://registry.yarnpkg.com/growing-file/-/growing-file-0.1.3.tgz#c7c8c24f53e8e2a71483a50b646d6194f0a5adae" 783 | integrity sha512-5+YYjm3sKIxyHAhlgDOzs1mL7sT9tbT3Unt1xymjkAgXZ2KwpLzYaaaNp3z1KIOXaKTYdJiUqxZmRusOTrO0gg== 784 | dependencies: 785 | oop "0.0.3" 786 | 787 | has-flag@^3.0.0: 788 | version "3.0.0" 789 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 790 | integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== 791 | 792 | has-flag@^4.0.0: 793 | version "4.0.0" 794 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" 795 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== 796 | 797 | has-property-descriptors@^1.0.0: 798 | version "1.0.1" 799 | resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz#52ba30b6c5ec87fd89fa574bc1c39125c6f65340" 800 | integrity sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg== 801 | dependencies: 802 | get-intrinsic "^1.2.2" 803 | 804 | has-proto@^1.0.1: 805 | version "1.0.1" 806 | resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" 807 | integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== 808 | 809 | has-symbols@^1.0.3: 810 | version "1.0.3" 811 | resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" 812 | integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== 813 | 814 | hasown@^2.0.0: 815 | version "2.0.0" 816 | resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.0.tgz#f4c513d454a57b7c7e1650778de226b11700546c" 817 | integrity sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA== 818 | dependencies: 819 | function-bind "^1.1.2" 820 | 821 | http-errors@2.0.0: 822 | version "2.0.0" 823 | resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" 824 | integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== 825 | dependencies: 826 | depd "2.0.0" 827 | inherits "2.0.4" 828 | setprototypeof "1.2.0" 829 | statuses "2.0.1" 830 | toidentifier "1.0.1" 831 | 832 | https-proxy-agent@^5.0.0: 833 | version "5.0.1" 834 | resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" 835 | integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== 836 | dependencies: 837 | agent-base "6" 838 | debug "4" 839 | 840 | humanize-ms@^1.2.1: 841 | version "1.2.1" 842 | resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" 843 | integrity sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ== 844 | dependencies: 845 | ms "^2.0.0" 846 | 847 | iconv-lite@0.4.24: 848 | version "0.4.24" 849 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" 850 | integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== 851 | dependencies: 852 | safer-buffer ">= 2.1.2 < 3" 853 | 854 | ignore-by-default@^1.0.1: 855 | version "1.0.1" 856 | resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" 857 | integrity sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA== 858 | 859 | inherits@2.0.4, inherits@^2.0.3: 860 | version "2.0.4" 861 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 862 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 863 | 864 | ipaddr.js@1.9.1: 865 | version "1.9.1" 866 | resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" 867 | integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== 868 | 869 | is-arrayish@^0.3.1: 870 | version "0.3.2" 871 | resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" 872 | integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== 873 | 874 | is-binary-path@~2.1.0: 875 | version "2.1.0" 876 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" 877 | integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== 878 | dependencies: 879 | binary-extensions "^2.0.0" 880 | 881 | is-buffer@~1.1.6: 882 | version "1.1.6" 883 | resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" 884 | integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== 885 | 886 | is-extglob@^2.1.1: 887 | version "2.1.1" 888 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" 889 | integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== 890 | 891 | is-glob@^4.0.1, is-glob@~4.0.1: 892 | version "4.0.3" 893 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" 894 | integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== 895 | dependencies: 896 | is-extglob "^2.1.1" 897 | 898 | is-number@^7.0.0: 899 | version "7.0.0" 900 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" 901 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== 902 | 903 | is-stream@^2.0.0: 904 | version "2.0.1" 905 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" 906 | integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== 907 | 908 | isexe@^2.0.0: 909 | version "2.0.0" 910 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 911 | integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== 912 | 913 | jake@^10.8.5: 914 | version "10.8.7" 915 | resolved "https://registry.yarnpkg.com/jake/-/jake-10.8.7.tgz#63a32821177940c33f356e0ba44ff9d34e1c7d8f" 916 | integrity sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w== 917 | dependencies: 918 | async "^3.2.3" 919 | chalk "^4.0.2" 920 | filelist "^1.0.4" 921 | minimatch "^3.1.2" 922 | 923 | jsonfile@^6.0.1: 924 | version "6.1.0" 925 | resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" 926 | integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== 927 | dependencies: 928 | universalify "^2.0.0" 929 | optionalDependencies: 930 | graceful-fs "^4.1.6" 931 | 932 | jsonwebtoken@^9.0.0: 933 | version "9.0.2" 934 | resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz#65ff91f4abef1784697d40952bb1998c504caaf3" 935 | integrity sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ== 936 | dependencies: 937 | jws "^3.2.2" 938 | lodash.includes "^4.3.0" 939 | lodash.isboolean "^3.0.3" 940 | lodash.isinteger "^4.0.4" 941 | lodash.isnumber "^3.0.3" 942 | lodash.isplainobject "^4.0.6" 943 | lodash.isstring "^4.0.1" 944 | lodash.once "^4.0.0" 945 | ms "^2.1.1" 946 | semver "^7.5.4" 947 | 948 | jwa@^1.4.1: 949 | version "1.4.1" 950 | resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.4.1.tgz#743c32985cb9e98655530d53641b66c8645b039a" 951 | integrity sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA== 952 | dependencies: 953 | buffer-equal-constant-time "1.0.1" 954 | ecdsa-sig-formatter "1.0.11" 955 | safe-buffer "^5.0.1" 956 | 957 | jws@^3.2.2: 958 | version "3.2.2" 959 | resolved "https://registry.yarnpkg.com/jws/-/jws-3.2.2.tgz#001099f3639468c9414000e99995fa52fb478304" 960 | integrity sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA== 961 | dependencies: 962 | jwa "^1.4.1" 963 | safe-buffer "^5.0.1" 964 | 965 | kuler@^2.0.0: 966 | version "2.0.0" 967 | resolved "https://registry.yarnpkg.com/kuler/-/kuler-2.0.0.tgz#e2c570a3800388fb44407e851531c1d670b061b3" 968 | integrity sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A== 969 | 970 | lodash.includes@^4.3.0: 971 | version "4.3.0" 972 | resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f" 973 | integrity sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w== 974 | 975 | lodash.isboolean@^3.0.3: 976 | version "3.0.3" 977 | resolved "https://registry.yarnpkg.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz#6c2e171db2a257cd96802fd43b01b20d5f5870f6" 978 | integrity sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg== 979 | 980 | lodash.isinteger@^4.0.4: 981 | version "4.0.4" 982 | resolved "https://registry.yarnpkg.com/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz#619c0af3d03f8b04c31f5882840b77b11cd68343" 983 | integrity sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA== 984 | 985 | lodash.isnumber@^3.0.3: 986 | version "3.0.3" 987 | resolved "https://registry.yarnpkg.com/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz#3ce76810c5928d03352301ac287317f11c0b1ffc" 988 | integrity sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw== 989 | 990 | lodash.isplainobject@^4.0.6: 991 | version "4.0.6" 992 | resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" 993 | integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA== 994 | 995 | lodash.isstring@^4.0.1: 996 | version "4.0.1" 997 | resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" 998 | integrity sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw== 999 | 1000 | lodash.once@^4.0.0: 1001 | version "4.1.1" 1002 | resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" 1003 | integrity sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg== 1004 | 1005 | logform@^2.3.2, logform@^2.4.0: 1006 | version "2.6.0" 1007 | resolved "https://registry.yarnpkg.com/logform/-/logform-2.6.0.tgz#8c82a983f05d6eaeb2d75e3decae7a768b2bf9b5" 1008 | integrity sha512-1ulHeNPp6k/LD8H91o7VYFBng5i1BDE7HoKxVbZiGFidS1Rj65qcywLxX+pVfAPoQJEjRdvKcusKwOupHCVOVQ== 1009 | dependencies: 1010 | "@colors/colors" "1.6.0" 1011 | "@types/triple-beam" "^1.3.2" 1012 | fecha "^4.2.0" 1013 | ms "^2.1.1" 1014 | safe-stable-stringify "^2.3.1" 1015 | triple-beam "^1.3.0" 1016 | 1017 | lru-cache@^6.0.0: 1018 | version "6.0.0" 1019 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" 1020 | integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== 1021 | dependencies: 1022 | yallist "^4.0.0" 1023 | 1024 | make-error@^1.1.1: 1025 | version "1.3.6" 1026 | resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" 1027 | integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== 1028 | 1029 | md5@^2.3.0: 1030 | version "2.3.0" 1031 | resolved "https://registry.yarnpkg.com/md5/-/md5-2.3.0.tgz#c3da9a6aae3a30b46b7b0c349b87b110dc3bda4f" 1032 | integrity sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g== 1033 | dependencies: 1034 | charenc "0.0.2" 1035 | crypt "0.0.2" 1036 | is-buffer "~1.1.6" 1037 | 1038 | media-typer@0.3.0: 1039 | version "0.3.0" 1040 | resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" 1041 | integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== 1042 | 1043 | merge-descriptors@1.0.1: 1044 | version "1.0.1" 1045 | resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" 1046 | integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== 1047 | 1048 | methods@~1.1.2: 1049 | version "1.1.2" 1050 | resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" 1051 | integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== 1052 | 1053 | mime-db@1.52.0: 1054 | version "1.52.0" 1055 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" 1056 | integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== 1057 | 1058 | mime-types@^2.1.12, mime-types@~2.1.24, mime-types@~2.1.34: 1059 | version "2.1.35" 1060 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" 1061 | integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== 1062 | dependencies: 1063 | mime-db "1.52.0" 1064 | 1065 | mime@1.6.0: 1066 | version "1.6.0" 1067 | resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" 1068 | integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== 1069 | 1070 | minimatch@^3.1.2: 1071 | version "3.1.2" 1072 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" 1073 | integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== 1074 | dependencies: 1075 | brace-expansion "^1.1.7" 1076 | 1077 | minimatch@^5.0.1: 1078 | version "5.1.6" 1079 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" 1080 | integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== 1081 | dependencies: 1082 | brace-expansion "^2.0.1" 1083 | 1084 | ms@2.0.0: 1085 | version "2.0.0" 1086 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 1087 | integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== 1088 | 1089 | ms@2.1.2: 1090 | version "2.1.2" 1091 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" 1092 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 1093 | 1094 | ms@2.1.3, ms@^2.0.0, ms@^2.1.1: 1095 | version "2.1.3" 1096 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" 1097 | integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== 1098 | 1099 | negotiator@0.6.3: 1100 | version "0.6.3" 1101 | resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" 1102 | integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== 1103 | 1104 | node-domexception@1.0.0: 1105 | version "1.0.0" 1106 | resolved "https://registry.yarnpkg.com/node-domexception/-/node-domexception-1.0.0.tgz#6888db46a1f71c0b76b3f7555016b63fe64766e5" 1107 | integrity sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ== 1108 | 1109 | node-fetch@^2.6.7: 1110 | version "2.7.0" 1111 | resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" 1112 | integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== 1113 | dependencies: 1114 | whatwg-url "^5.0.0" 1115 | 1116 | nodemon@^3.0.2: 1117 | version "3.0.2" 1118 | resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-3.0.2.tgz#222dd0de79fc7b7b3eedba422d2b9e5fc678621e" 1119 | integrity sha512-9qIN2LNTrEzpOPBaWHTm4Asy1LxXLSickZStAQ4IZe7zsoIpD/A7LWxhZV3t4Zu352uBcqVnRsDXSMR2Sc3lTA== 1120 | dependencies: 1121 | chokidar "^3.5.2" 1122 | debug "^4" 1123 | ignore-by-default "^1.0.1" 1124 | minimatch "^3.1.2" 1125 | pstree.remy "^1.1.8" 1126 | semver "^7.5.3" 1127 | simple-update-notifier "^2.0.0" 1128 | supports-color "^5.5.0" 1129 | touch "^3.1.0" 1130 | undefsafe "^2.0.5" 1131 | 1132 | nopt@~1.0.10: 1133 | version "1.0.10" 1134 | resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" 1135 | integrity sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg== 1136 | dependencies: 1137 | abbrev "1" 1138 | 1139 | normalize-path@^3.0.0, normalize-path@~3.0.0: 1140 | version "3.0.0" 1141 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" 1142 | integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== 1143 | 1144 | object-inspect@^1.9.0: 1145 | version "1.13.1" 1146 | resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" 1147 | integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== 1148 | 1149 | on-finished@2.4.1: 1150 | version "2.4.1" 1151 | resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" 1152 | integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== 1153 | dependencies: 1154 | ee-first "1.1.1" 1155 | 1156 | one-time@^1.0.0: 1157 | version "1.0.0" 1158 | resolved "https://registry.yarnpkg.com/one-time/-/one-time-1.0.0.tgz#e06bc174aed214ed58edede573b433bbf827cb45" 1159 | integrity sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g== 1160 | dependencies: 1161 | fn.name "1.x.x" 1162 | 1163 | oop@0.0.3: 1164 | version "0.0.3" 1165 | resolved "https://registry.yarnpkg.com/oop/-/oop-0.0.3.tgz#70fa405a5650891a194fdc82ca68dad6dabf4401" 1166 | integrity sha512-NCkLvw6ZyDnLCFNWIXtbrhNKEVBwHxv8n003Lum8Y5YF3dZtbSYSZZN/8gGJ1Ey52hCpsBQ6n5qutYAc4OOhFA== 1167 | 1168 | openai@^4.23.0: 1169 | version "4.23.0" 1170 | resolved "https://registry.yarnpkg.com/openai/-/openai-4.23.0.tgz#17b0e8493094e658896b683c6bf1824246d4d47b" 1171 | integrity sha512-ey2CXh1OTcTUa0AWZWuTpgA9t5GuAG3DVU1MofCRUI7fQJij8XJ3Sr0VtgxoAE69C9wbHBMCux8Z/IQZfSwHiA== 1172 | dependencies: 1173 | "@types/node" "^18.11.18" 1174 | "@types/node-fetch" "^2.6.4" 1175 | abort-controller "^3.0.0" 1176 | agentkeepalive "^4.2.1" 1177 | digest-fetch "^1.3.0" 1178 | form-data-encoder "1.7.2" 1179 | formdata-node "^4.3.2" 1180 | node-fetch "^2.6.7" 1181 | web-streams-polyfill "^3.2.1" 1182 | 1183 | parseurl@~1.3.3: 1184 | version "1.3.3" 1185 | resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" 1186 | integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== 1187 | 1188 | path-to-regexp@0.1.7: 1189 | version "0.1.7" 1190 | resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" 1191 | integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== 1192 | 1193 | picomatch@^2.0.4, picomatch@^2.2.1: 1194 | version "2.3.1" 1195 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" 1196 | integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== 1197 | 1198 | proxy-addr@~2.0.7: 1199 | version "2.0.7" 1200 | resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" 1201 | integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== 1202 | dependencies: 1203 | forwarded "0.2.0" 1204 | ipaddr.js "1.9.1" 1205 | 1206 | proxy-from-env@^1.1.0: 1207 | version "1.1.0" 1208 | resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" 1209 | integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== 1210 | 1211 | pstree.remy@^1.1.8: 1212 | version "1.1.8" 1213 | resolved "https://registry.yarnpkg.com/pstree.remy/-/pstree.remy-1.1.8.tgz#c242224f4a67c21f686839bbdb4ac282b8373d3a" 1214 | integrity sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w== 1215 | 1216 | qs@6.11.0: 1217 | version "6.11.0" 1218 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" 1219 | integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== 1220 | dependencies: 1221 | side-channel "^1.0.4" 1222 | 1223 | qs@^6.9.4: 1224 | version "6.11.2" 1225 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.2.tgz#64bea51f12c1f5da1bc01496f48ffcff7c69d7d9" 1226 | integrity sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA== 1227 | dependencies: 1228 | side-channel "^1.0.4" 1229 | 1230 | querystringify@^2.1.1: 1231 | version "2.2.0" 1232 | resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" 1233 | integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== 1234 | 1235 | ramda@0.29.0: 1236 | version "0.29.0" 1237 | resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.29.0.tgz#fbbb67a740a754c8a4cbb41e2a6e0eb8507f55fb" 1238 | integrity sha512-BBea6L67bYLtdbOqfp8f58fPMqEwx0doL+pAi8TZyp2YWz8R9G8z9x75CZI8W+ftqhFHCpEX2cRnUUXK130iKA== 1239 | 1240 | range-parser@~1.2.1: 1241 | version "1.2.1" 1242 | resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" 1243 | integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== 1244 | 1245 | raw-body@2.5.1: 1246 | version "2.5.1" 1247 | resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857" 1248 | integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== 1249 | dependencies: 1250 | bytes "3.1.2" 1251 | http-errors "2.0.0" 1252 | iconv-lite "0.4.24" 1253 | unpipe "1.0.0" 1254 | 1255 | readable-stream@^3.4.0, readable-stream@^3.6.0: 1256 | version "3.6.2" 1257 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" 1258 | integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== 1259 | dependencies: 1260 | inherits "^2.0.3" 1261 | string_decoder "^1.1.1" 1262 | util-deprecate "^1.0.1" 1263 | 1264 | readdirp@~3.6.0: 1265 | version "3.6.0" 1266 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" 1267 | integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== 1268 | dependencies: 1269 | picomatch "^2.2.1" 1270 | 1271 | requires-port@^1.0.0: 1272 | version "1.0.0" 1273 | resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" 1274 | integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== 1275 | 1276 | safe-buffer@5.2.1, safe-buffer@^5.0.1, safe-buffer@~5.2.0: 1277 | version "5.2.1" 1278 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" 1279 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== 1280 | 1281 | safe-stable-stringify@^2.3.1: 1282 | version "2.4.3" 1283 | resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz#138c84b6f6edb3db5f8ef3ef7115b8f55ccbf886" 1284 | integrity sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g== 1285 | 1286 | "safer-buffer@>= 2.1.2 < 3": 1287 | version "2.1.2" 1288 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" 1289 | integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== 1290 | 1291 | scmp@^2.1.0: 1292 | version "2.1.0" 1293 | resolved "https://registry.yarnpkg.com/scmp/-/scmp-2.1.0.tgz#37b8e197c425bdeb570ab91cc356b311a11f9c9a" 1294 | integrity sha512-o/mRQGk9Rcer/jEEw/yw4mwo3EU/NvYvp577/Btqrym9Qy5/MdWGBqipbALgd2lrdWTJ5/gqDusxfnQBxOxT2Q== 1295 | 1296 | semver@^7.5.3, semver@^7.5.4: 1297 | version "7.5.4" 1298 | resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" 1299 | integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== 1300 | dependencies: 1301 | lru-cache "^6.0.0" 1302 | 1303 | send@0.18.0: 1304 | version "0.18.0" 1305 | resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" 1306 | integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== 1307 | dependencies: 1308 | debug "2.6.9" 1309 | depd "2.0.0" 1310 | destroy "1.2.0" 1311 | encodeurl "~1.0.2" 1312 | escape-html "~1.0.3" 1313 | etag "~1.8.1" 1314 | fresh "0.5.2" 1315 | http-errors "2.0.0" 1316 | mime "1.6.0" 1317 | ms "2.1.3" 1318 | on-finished "2.4.1" 1319 | range-parser "~1.2.1" 1320 | statuses "2.0.1" 1321 | 1322 | serve-static@1.15.0: 1323 | version "1.15.0" 1324 | resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" 1325 | integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== 1326 | dependencies: 1327 | encodeurl "~1.0.2" 1328 | escape-html "~1.0.3" 1329 | parseurl "~1.3.3" 1330 | send "0.18.0" 1331 | 1332 | set-function-length@^1.1.1: 1333 | version "1.1.1" 1334 | resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.1.1.tgz#4bc39fafb0307224a33e106a7d35ca1218d659ed" 1335 | integrity sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ== 1336 | dependencies: 1337 | define-data-property "^1.1.1" 1338 | get-intrinsic "^1.2.1" 1339 | gopd "^1.0.1" 1340 | has-property-descriptors "^1.0.0" 1341 | 1342 | setprototypeof@1.2.0: 1343 | version "1.2.0" 1344 | resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" 1345 | integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== 1346 | 1347 | side-channel@^1.0.4: 1348 | version "1.0.4" 1349 | resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" 1350 | integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== 1351 | dependencies: 1352 | call-bind "^1.0.0" 1353 | get-intrinsic "^1.0.2" 1354 | object-inspect "^1.9.0" 1355 | 1356 | simple-swizzle@^0.2.2: 1357 | version "0.2.2" 1358 | resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" 1359 | integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg== 1360 | dependencies: 1361 | is-arrayish "^0.3.1" 1362 | 1363 | simple-update-notifier@^2.0.0: 1364 | version "2.0.0" 1365 | resolved "https://registry.yarnpkg.com/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz#d70b92bdab7d6d90dfd73931195a30b6e3d7cebb" 1366 | integrity sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w== 1367 | dependencies: 1368 | semver "^7.5.3" 1369 | 1370 | stack-trace@0.0.x: 1371 | version "0.0.10" 1372 | resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" 1373 | integrity sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg== 1374 | 1375 | statuses@2.0.1: 1376 | version "2.0.1" 1377 | resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" 1378 | integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== 1379 | 1380 | string_decoder@^1.1.1: 1381 | version "1.3.0" 1382 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" 1383 | integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== 1384 | dependencies: 1385 | safe-buffer "~5.2.0" 1386 | 1387 | supports-color@^5.5.0: 1388 | version "5.5.0" 1389 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" 1390 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== 1391 | dependencies: 1392 | has-flag "^3.0.0" 1393 | 1394 | supports-color@^7.1.0: 1395 | version "7.2.0" 1396 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" 1397 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== 1398 | dependencies: 1399 | has-flag "^4.0.0" 1400 | 1401 | text-hex@1.0.x: 1402 | version "1.0.0" 1403 | resolved "https://registry.yarnpkg.com/text-hex/-/text-hex-1.0.0.tgz#69dc9c1b17446ee79a92bf5b884bb4b9127506f5" 1404 | integrity sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg== 1405 | 1406 | to-regex-range@^5.0.1: 1407 | version "5.0.1" 1408 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" 1409 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== 1410 | dependencies: 1411 | is-number "^7.0.0" 1412 | 1413 | toidentifier@1.0.1: 1414 | version "1.0.1" 1415 | resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" 1416 | integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== 1417 | 1418 | touch@^3.1.0: 1419 | version "3.1.0" 1420 | resolved "https://registry.yarnpkg.com/touch/-/touch-3.1.0.tgz#fe365f5f75ec9ed4e56825e0bb76d24ab74af83b" 1421 | integrity sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA== 1422 | dependencies: 1423 | nopt "~1.0.10" 1424 | 1425 | tr46@~0.0.3: 1426 | version "0.0.3" 1427 | resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" 1428 | integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== 1429 | 1430 | triple-beam@^1.3.0: 1431 | version "1.4.1" 1432 | resolved "https://registry.yarnpkg.com/triple-beam/-/triple-beam-1.4.1.tgz#6fde70271dc6e5d73ca0c3b24e2d92afb7441984" 1433 | integrity sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg== 1434 | 1435 | ts-node@^10.9.2: 1436 | version "10.9.2" 1437 | resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.2.tgz#70f021c9e185bccdca820e26dc413805c101c71f" 1438 | integrity sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ== 1439 | dependencies: 1440 | "@cspotcode/source-map-support" "^0.8.0" 1441 | "@tsconfig/node10" "^1.0.7" 1442 | "@tsconfig/node12" "^1.0.7" 1443 | "@tsconfig/node14" "^1.0.0" 1444 | "@tsconfig/node16" "^1.0.2" 1445 | acorn "^8.4.1" 1446 | acorn-walk "^8.1.1" 1447 | arg "^4.1.0" 1448 | create-require "^1.1.0" 1449 | diff "^4.0.1" 1450 | make-error "^1.1.1" 1451 | v8-compile-cache-lib "^3.0.1" 1452 | yn "3.1.1" 1453 | 1454 | ts-toolbelt@^9.6.0: 1455 | version "9.6.0" 1456 | resolved "https://registry.yarnpkg.com/ts-toolbelt/-/ts-toolbelt-9.6.0.tgz#50a25426cfed500d4a09bd1b3afb6f28879edfd5" 1457 | integrity sha512-nsZd8ZeNUzukXPlJmTBwUAuABDe/9qtVDelJeT/qW0ow3ZS3BsQJtNkan1802aM9Uf68/Y8ljw86Hu0h5IUW3w== 1458 | 1459 | twilio@^4.20.0: 1460 | version "4.20.0" 1461 | resolved "https://registry.yarnpkg.com/twilio/-/twilio-4.20.0.tgz#9d88314f5514528aaa33eb65cce9599ec1ff6dd7" 1462 | integrity sha512-Dl49awVTgv9LOLrmXi7elKa2mb69rtkwJHlKNbIR9HjXN7q66gEEaiZsE6gdr+Wfk/zInOvPDVBCdQM+SYXqkA== 1463 | dependencies: 1464 | axios "^1.6.0" 1465 | dayjs "^1.11.9" 1466 | https-proxy-agent "^5.0.0" 1467 | jsonwebtoken "^9.0.0" 1468 | qs "^6.9.4" 1469 | scmp "^2.1.0" 1470 | url-parse "^1.5.9" 1471 | xmlbuilder "^13.0.2" 1472 | 1473 | type-is@~1.6.18: 1474 | version "1.6.18" 1475 | resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" 1476 | integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== 1477 | dependencies: 1478 | media-typer "0.3.0" 1479 | mime-types "~2.1.24" 1480 | 1481 | types-ramda@^0.29.4: 1482 | version "0.29.6" 1483 | resolved "https://registry.yarnpkg.com/types-ramda/-/types-ramda-0.29.6.tgz#a1d2a3c15a48e27d35832d7194d93369975f1427" 1484 | integrity sha512-VJoOk1uYNh9ZguGd3eZvqkdhD4hTGtnjRBUx5Zc0U9ftmnCgiWcSj/lsahzKunbiwRje1MxxNkEy1UdcXRCpYw== 1485 | dependencies: 1486 | ts-toolbelt "^9.6.0" 1487 | 1488 | typescript@^5.3.3: 1489 | version "5.3.3" 1490 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.3.3.tgz#b3ce6ba258e72e6305ba66f5c9b452aaee3ffe37" 1491 | integrity sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw== 1492 | 1493 | undefsafe@^2.0.5: 1494 | version "2.0.5" 1495 | resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.5.tgz#38733b9327bdcd226db889fb723a6efd162e6e2c" 1496 | integrity sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA== 1497 | 1498 | undici-types@~5.26.4: 1499 | version "5.26.5" 1500 | resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" 1501 | integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== 1502 | 1503 | universalify@^2.0.0: 1504 | version "2.0.1" 1505 | resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d" 1506 | integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== 1507 | 1508 | unpipe@1.0.0, unpipe@~1.0.0: 1509 | version "1.0.0" 1510 | resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" 1511 | integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== 1512 | 1513 | url-parse@^1.5.9: 1514 | version "1.5.10" 1515 | resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1" 1516 | integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ== 1517 | dependencies: 1518 | querystringify "^2.1.1" 1519 | requires-port "^1.0.0" 1520 | 1521 | util-deprecate@^1.0.1: 1522 | version "1.0.2" 1523 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 1524 | integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== 1525 | 1526 | utils-merge@1.0.1: 1527 | version "1.0.1" 1528 | resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" 1529 | integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== 1530 | 1531 | uuid@^9.0.1: 1532 | version "9.0.1" 1533 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30" 1534 | integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA== 1535 | 1536 | v8-compile-cache-lib@^3.0.1: 1537 | version "3.0.1" 1538 | resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" 1539 | integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== 1540 | 1541 | vary@~1.1.2: 1542 | version "1.1.2" 1543 | resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" 1544 | integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== 1545 | 1546 | wavefile@^11.0.0: 1547 | version "11.0.0" 1548 | resolved "https://registry.yarnpkg.com/wavefile/-/wavefile-11.0.0.tgz#9302165874327ff63a704d00b154c753eaa1b8e7" 1549 | integrity sha512-/OBiAALgWU24IG7sC84cDO/KfFuvajWc5Uec0oV2zrpOOZZDgGdOwHwgEzOrwh8jkubBk7PtZfQBIcI1OaE5Ng== 1550 | 1551 | web-streams-polyfill@4.0.0-beta.3: 1552 | version "4.0.0-beta.3" 1553 | resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-4.0.0-beta.3.tgz#2898486b74f5156095e473efe989dcf185047a38" 1554 | integrity sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug== 1555 | 1556 | web-streams-polyfill@^3.2.1: 1557 | version "3.2.1" 1558 | resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz#71c2718c52b45fd49dbeee88634b3a60ceab42a6" 1559 | integrity sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q== 1560 | 1561 | webidl-conversions@^3.0.0: 1562 | version "3.0.1" 1563 | resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" 1564 | integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== 1565 | 1566 | whatwg-url@^5.0.0: 1567 | version "5.0.0" 1568 | resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" 1569 | integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== 1570 | dependencies: 1571 | tr46 "~0.0.3" 1572 | webidl-conversions "^3.0.0" 1573 | 1574 | which@^1.1.1: 1575 | version "1.3.1" 1576 | resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" 1577 | integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== 1578 | dependencies: 1579 | isexe "^2.0.0" 1580 | 1581 | winston-transport@^4.5.0: 1582 | version "4.6.0" 1583 | resolved "https://registry.yarnpkg.com/winston-transport/-/winston-transport-4.6.0.tgz#f1c1a665ad1b366df72199e27892721832a19e1b" 1584 | integrity sha512-wbBA9PbPAHxKiygo7ub7BYRiKxms0tpfU2ljtWzb3SjRjv5yl6Ozuy/TkXf00HTAt+Uylo3gSkNwzc4ME0wiIg== 1585 | dependencies: 1586 | logform "^2.3.2" 1587 | readable-stream "^3.6.0" 1588 | triple-beam "^1.3.0" 1589 | 1590 | winston@*, winston@^3.11.0: 1591 | version "3.11.0" 1592 | resolved "https://registry.yarnpkg.com/winston/-/winston-3.11.0.tgz#2d50b0a695a2758bb1c95279f0a88e858163ed91" 1593 | integrity sha512-L3yR6/MzZAOl0DsysUXHVjOwv8mKZ71TrA/41EIduGpOOV5LQVodqN+QdQ6BS6PJ/RdIshZhq84P/fStEZkk7g== 1594 | dependencies: 1595 | "@colors/colors" "^1.6.0" 1596 | "@dabh/diagnostics" "^2.0.2" 1597 | async "^3.2.3" 1598 | is-stream "^2.0.0" 1599 | logform "^2.4.0" 1600 | one-time "^1.0.0" 1601 | readable-stream "^3.4.0" 1602 | safe-stable-stringify "^2.3.1" 1603 | stack-trace "0.0.x" 1604 | triple-beam "^1.3.0" 1605 | winston-transport "^4.5.0" 1606 | 1607 | ws@^8.15.1: 1608 | version "8.15.1" 1609 | resolved "https://registry.yarnpkg.com/ws/-/ws-8.15.1.tgz#271ba33a45ca0cc477940f7f200cd7fba7ee1997" 1610 | integrity sha512-W5OZiCjXEmk0yZ66ZN82beM5Sz7l7coYxpRkzS+p9PP+ToQry8szKh+61eNktr7EA9DOwvFGhfC605jDHbP6QQ== 1611 | 1612 | xmlbuilder@^13.0.2: 1613 | version "13.0.2" 1614 | resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-13.0.2.tgz#02ae33614b6a047d1c32b5389c1fdacb2bce47a7" 1615 | integrity sha512-Eux0i2QdDYKbdbA6AM6xE4m6ZTZr4G4xF9kahI2ukSEMCzwce2eX9WlTI5J3s+NU7hpasFsr8hWIONae7LluAQ== 1616 | 1617 | yallist@^4.0.0: 1618 | version "4.0.0" 1619 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" 1620 | integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== 1621 | 1622 | yn@3.1.1: 1623 | version "3.1.1" 1624 | resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" 1625 | integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== 1626 | --------------------------------------------------------------------------------