├── .gitignore ├── .env.example ├── package.json ├── LICENSE ├── README.md ├── app ├── server.js └── webflow.js └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | data 3 | .env 4 | *.log -------------------------------------------------------------------------------- /.env.example: -------------------------------------------------------------------------------- 1 | CLIENT_ID="[OAUTH_CLIENT_ID]" 2 | CLIENT_SECRET="[OAUTH_CLIENT_SECRET]" 3 | SERVER_HOST="[THE URL TO THIS SERVER]" 4 | PORT=3000 -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "webflow-app-starter", 3 | "description": "A boilerplate to quickly get started with Webflow Apps", 4 | "author": { 5 | "name": "John Agan", 6 | "email": "john.agan@webflow.com" 7 | }, 8 | "version": "1.0.0", 9 | "main": "app/server.js", 10 | "type": "module", 11 | "license": "MIT", 12 | "scripts": { 13 | "dev": "nodemon -r dotenv/config app/server.js" 14 | }, 15 | "dependencies": { 16 | "dotenv": "^16.0.2", 17 | "fastify": "^4.6.0", 18 | "level": "^8.0.0", 19 | "nodemon": "^2.0.20", 20 | "simple-oauth2": "^4.3.0", 21 | "webflow-api": "^0.8.1" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 Webflow Examples 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | >[!CAUTION] 2 | >This example is deprecated. Please see the [latest version that uses the v2 API.](https://github.com/Webflow-Examples/webflow-app-starter-v2) 3 | 4 | # Webflow App Starter 5 | 6 | Use this starter to spin-up a Webflow App server, enable OAuth installation, create webhooks on sites, and respond to those webhook events. 7 | 8 | This project is not meant to be used in production - only an example of how to create an integtation that uses OAuth. The access tokens are being stored in a KVS and looked-up by site id. In production, you'll need to encrypt these access tokens and likely store more than just the token. 9 | 10 | ## Get Running 11 | 12 | 1. [Register](https://developers.webflow.com/#oauth-applications) an OAuth App in Webflow 13 | 2. Copy `.env.example` to `.env` and populate the values 14 | 3. Clone and run `yarn install` or `npm install` 15 | 4. run `yarn dev` or `npm run dev` to start the server 16 | 17 | ## This starter uses the following tools 18 | 19 | - [Fastify](https://www.fastify.io/) for a webserver 20 | - [Level](https://github.com/Level/level) for a key-value store 21 | - [Webflow SDK](https://github.com/webflow/js-webflow-api) for the Webflow API client 22 | - [Nodemon](https://nodemon.io/) for live-reload during development 23 | 24 | ## Requirements 25 | 26 | This server needs to be accessible by Webflow to recieve Webhook events. You have a couple of options to enable this: 27 | 28 | #### Free Hosts 29 | 30 | - [Railway.app](https://railway.app/) 31 | - [Fly.io](https://fly.io/) 32 | - [Vercel](https://vercel.com/) 33 | 34 | #### Tunnel 35 | 36 | - [ngrok](https://ngrok.com/) 37 | - [localtunnel](https://theboroer.github.io/localtunnel-www/) 38 | -------------------------------------------------------------------------------- /app/server.js: -------------------------------------------------------------------------------- 1 | import Webflow from "webflow-api"; 2 | import App from "./webflow.js"; 3 | import Fastify from "fastify"; 4 | 5 | // Load environment variables from .env file 6 | const { CLIENT_ID, CLIENT_SECRET, SERVER_HOST, PORT } = process.env; 7 | 8 | // Create a new Webflow App instance 9 | const app = new App(CLIENT_ID, CLIENT_SECRET); 10 | 11 | const server = Fastify({ 12 | logger: true, 13 | }); 14 | 15 | // Response to Webhooks 16 | server.post("/webhook", async (req, reply) => { 17 | // verify the webhook signature 18 | const valid = app.verifyRequest(req.headers, req.body); 19 | if (!valid) return reply.status(401).send("Invalid request"); 20 | 21 | // Get site ID from webhook payload 22 | const { site } = req.body; 23 | 24 | // Get the site's access token 25 | const token = await app.data.get(site); 26 | 27 | // Initialize a new Webflow client 28 | const webflow = new Webflow({ token }); 29 | 30 | // Make calls to the Webflow API 31 | const user = await webflow.get("/user"); 32 | // Do other stuff with the API... 33 | 34 | // Return a 200 response to Webflow 35 | reply.statusCode = 200; 36 | }); 37 | 38 | // Install the App 39 | server.get("/", async (req, reply) => { 40 | const { code } = req.query; 41 | 42 | // If a code is passed in, attempt to install the App 43 | // othersise, redirect to the install URL to start OAuth 44 | if (code) { 45 | // install the App and get an access token 46 | const token = await app.install(code); 47 | 48 | // add webhook to each site 49 | const triggerType = "site_publish"; 50 | const url = SERVER_HOST + "/webhook"; 51 | const webhooks = app.addWebhooks(triggerType, url, token); 52 | 53 | return webhooks; 54 | } else { 55 | // Generate a URL for a user to install the App on Webflow 56 | const installUrl = app.installUrl(); 57 | 58 | // Redirect the user to the install URL 59 | return reply.redirect(installUrl); 60 | } 61 | }); 62 | 63 | server.listen({ port: PORT, host: "0.0.0.0" }, (err) => { 64 | if (err) throw err; 65 | }); 66 | -------------------------------------------------------------------------------- /app/webflow.js: -------------------------------------------------------------------------------- 1 | import { AuthorizationCode } from "simple-oauth2"; 2 | import { createHmac } from "crypto"; 3 | import Client from "webflow-api"; 4 | import { Level } from "level"; 5 | 6 | class App { 7 | /** 8 | * @param {string} clientId The OAuth client ID for the app 9 | * @param {string} clientSecret The OAuth client secret for the app 10 | */ 11 | constructor(clientId, clientSecret) { 12 | this.clientSecret = clientSecret; 13 | 14 | // KVS for app data 15 | this.data = new Level("data"); 16 | 17 | // OAuth options 18 | this.oauth = new AuthorizationCode({ 19 | client: { 20 | id: clientId, 21 | secret: clientSecret, 22 | }, 23 | options: { 24 | bodyFormat: "json", 25 | authorizationMethod: "body", 26 | }, 27 | auth: { 28 | tokenHost: "https://api.webflow.com", 29 | authorizeHost: "https://webflow.com", 30 | }, 31 | }); 32 | } 33 | 34 | /** 35 | * Install an App and get the user's access token 36 | * 37 | * @param {string} code The authorization code used to retrieve an access_token for the user. Can only be used once. 38 | * 39 | * @returns The user's access token 40 | */ 41 | async install(code) { 42 | const access = await this.oauth.getToken({ code }); 43 | return access.token.access_token; 44 | } 45 | 46 | /** 47 | * Create Webhooks for all sites available 48 | * 49 | * @param {string} triggerType The webhook trigger type to listen for 50 | * @param {string} url The url to send the webhook events to 51 | * @param {string} token The access token to use for creating the webhooks 52 | * 53 | * @returns An array of webhook created 54 | */ 55 | async addWebhooks(triggerType, url, token) { 56 | const client = new Client({ token }); 57 | const sites = await client.sites(); 58 | const created = []; 59 | 60 | // create a webhook for each site 61 | for (const { _id } of sites) { 62 | const args = { triggerType, siteId: _id, url }; 63 | const webhook = await client.createWebhook(args); 64 | created.push(webhook); 65 | 66 | // store token for a site_id to handle webhooks events 67 | await this.data.put(webhook.site, token); 68 | } 69 | 70 | // Return all webhooks created 71 | return created; 72 | } 73 | 74 | /** 75 | * Generate a URL for a user to install the App on Webflow 76 | * 77 | * @param params 78 | * @param params.redirectURI String representing the registered application URI where the user is redirected after authentication 79 | * @param params.scope String or array of strings representing the application privileges 80 | * @param params.state String representing an opaque value used by the client to main the state between the request and the callback 81 | * 82 | * @return The Webflow installation url 83 | */ 84 | installUrl(params = {}) { 85 | return this.oauth.authorizeURL(params); 86 | } 87 | 88 | /** 89 | * Verify the an incoming request is from Webflow 90 | * 91 | * @param {object} headers An object containing the request headers 92 | * @param {object} body The request body 93 | * @returns The results of the HMAC verification 94 | */ 95 | verifyRequest(headers, body) { 96 | const signature = headers["x-webflow-signature"]; 97 | const timestamp = Number(headers["x-webflow-timestamp"]); 98 | const content = timestamp + ":" + JSON.stringify(body); 99 | 100 | // timestamp shouldn't be older than 5 minutes 101 | const ellapsedTime = Date.now() - timestamp; 102 | if (ellapsedTime > 60 * 5) return false; 103 | 104 | // compare signatures 105 | const hmac = createHmac("sha256", this.clientSecret); 106 | return signature === hmac.update(content).digest("hex"); 107 | } 108 | } 109 | 110 | export default App; 111 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@fastify/ajv-compiler@^3.1.1": 6 | version "3.3.1" 7 | resolved "https://registry.yarnpkg.com/@fastify/ajv-compiler/-/ajv-compiler-3.3.1.tgz#7045dbf23c11c42b50011ccc36998cd624856e5d" 8 | integrity sha512-IRnids8lblQ8e1i8h4JLyfJmebXE+ohcj8x8X/+Ew6ZB4H0Ui05z5YL6q5FOcl0zItVpu4adRzeyVNNUwmduIg== 9 | dependencies: 10 | ajv "^8.11.0" 11 | ajv-formats "^2.1.1" 12 | fast-uri "^2.0.0" 13 | 14 | "@fastify/deepmerge@^1.0.0": 15 | version "1.1.0" 16 | resolved "https://registry.yarnpkg.com/@fastify/deepmerge/-/deepmerge-1.1.0.tgz#91f0a5a27034ff76b7bece63a5906894940ace82" 17 | integrity sha512-E8Hfdvs1bG6u0N4vN5Nty6JONUfTdOciyD5rn8KnEsLKIenvOVcr210BQR9t34PRkNyjqnMLGk3e0BsaxRdL+g== 18 | 19 | "@fastify/error@^3.0.0": 20 | version "3.0.0" 21 | resolved "https://registry.yarnpkg.com/@fastify/error/-/error-3.0.0.tgz#bfcb7b33cec0196413083a91ef2edc7b2c88455b" 22 | integrity sha512-dPRyT40GiHRzSCll3/Jn2nPe25+E1VXc9tDwRAIKwFCxd5Np5wzgz1tmooWG3sV0qKgrBibihVoCna2ru4SEFg== 23 | 24 | "@fastify/fast-json-stringify-compiler@^4.0.0": 25 | version "4.1.0" 26 | resolved "https://registry.yarnpkg.com/@fastify/fast-json-stringify-compiler/-/fast-json-stringify-compiler-4.1.0.tgz#ebf657ce4ec88e27ba311f7560eaa0b37de8719d" 27 | integrity sha512-cTKBV2J9+u6VaKDhX7HepSfPSzw+F+TSd+k0wzifj4rG+4E5PjSFJCk19P8R6tr/72cuzgGd+mbB3jFT6lvAgw== 28 | dependencies: 29 | fast-json-stringify "^5.0.0" 30 | 31 | "@hapi/boom@9.x.x": 32 | version "9.1.4" 33 | resolved "https://registry.yarnpkg.com/@hapi/boom/-/boom-9.1.4.tgz#1f9dad367c6a7da9f8def24b4a986fc5a7bd9db6" 34 | integrity sha512-Ls1oH8jaN1vNsqcaHVYJrKmgMcKsC1wcp8bujvXrHaAqD2iDYq3HoOwsxwo09Cuda5R5nC0o0IxlrlTuvPuzSw== 35 | dependencies: 36 | "@hapi/hoek" "9.x.x" 37 | 38 | "@hapi/bourne@2.x.x": 39 | version "2.1.0" 40 | resolved "https://registry.yarnpkg.com/@hapi/bourne/-/bourne-2.1.0.tgz#66aff77094dc3080bd5df44ec63881f2676eb020" 41 | integrity sha512-i1BpaNDVLJdRBEKeJWkVO6tYX6DMFBuwMhSuWqLsY4ufeTKGVuV5rBsUhxPayXqnnWHgXUAmWK16H/ykO5Wj4Q== 42 | 43 | "@hapi/hoek@9.x.x", "@hapi/hoek@^9.0.0", "@hapi/hoek@^9.0.4": 44 | version "9.3.0" 45 | resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.3.0.tgz#8368869dcb735be2e7f5cb7647de78e167a251fb" 46 | integrity sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ== 47 | 48 | "@hapi/topo@^5.0.0": 49 | version "5.1.0" 50 | resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-5.1.0.tgz#dc448e332c6c6e37a4dc02fd84ba8d44b9afb012" 51 | integrity sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg== 52 | dependencies: 53 | "@hapi/hoek" "^9.0.0" 54 | 55 | "@hapi/wreck@^17.0.0": 56 | version "17.2.0" 57 | resolved "https://registry.yarnpkg.com/@hapi/wreck/-/wreck-17.2.0.tgz#a5b69b724fa8fa25550fb02f55c649becfc59f63" 58 | integrity sha512-pJ5kjYoRPYDv+eIuiLQqhGon341fr2bNIYZjuotuPJG/3Ilzr/XtI+JAp0A86E2bYfsS3zBPABuS2ICkaXFT8g== 59 | dependencies: 60 | "@hapi/boom" "9.x.x" 61 | "@hapi/bourne" "2.x.x" 62 | "@hapi/hoek" "9.x.x" 63 | 64 | "@sideway/address@^4.1.3": 65 | version "4.1.4" 66 | resolved "https://registry.yarnpkg.com/@sideway/address/-/address-4.1.4.tgz#03dccebc6ea47fdc226f7d3d1ad512955d4783f0" 67 | integrity sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw== 68 | dependencies: 69 | "@hapi/hoek" "^9.0.0" 70 | 71 | "@sideway/formula@^3.0.0": 72 | version "3.0.0" 73 | resolved "https://registry.yarnpkg.com/@sideway/formula/-/formula-3.0.0.tgz#fe158aee32e6bd5de85044be615bc08478a0a13c" 74 | integrity sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg== 75 | 76 | "@sideway/pinpoint@^2.0.0": 77 | version "2.0.0" 78 | resolved "https://registry.yarnpkg.com/@sideway/pinpoint/-/pinpoint-2.0.0.tgz#cff8ffadc372ad29fd3f78277aeb29e632cc70df" 79 | integrity sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ== 80 | 81 | abbrev@1: 82 | version "1.1.1" 83 | resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" 84 | integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== 85 | 86 | abort-controller@^3.0.0: 87 | version "3.0.0" 88 | resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" 89 | integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== 90 | dependencies: 91 | event-target-shim "^5.0.0" 92 | 93 | abstract-level@^1.0.2: 94 | version "1.0.3" 95 | resolved "https://registry.yarnpkg.com/abstract-level/-/abstract-level-1.0.3.tgz#78a67d3d84da55ee15201486ab44c09560070741" 96 | integrity sha512-t6jv+xHy+VYwc4xqZMn2Pa9DjcdzvzZmQGRjTFc8spIbRGHgBrEKbPq+rYXc7CCo0lxgYvSgKVg9qZAhpVQSjA== 97 | dependencies: 98 | buffer "^6.0.3" 99 | catering "^2.1.0" 100 | is-buffer "^2.0.5" 101 | level-supports "^4.0.0" 102 | level-transcoder "^1.0.1" 103 | module-error "^1.0.1" 104 | queue-microtask "^1.2.3" 105 | 106 | abstract-logging@^2.0.1: 107 | version "2.0.1" 108 | resolved "https://registry.yarnpkg.com/abstract-logging/-/abstract-logging-2.0.1.tgz#6b0c371df212db7129b57d2e7fcf282b8bf1c839" 109 | integrity sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA== 110 | 111 | ajv-formats@^2.1.1: 112 | version "2.1.1" 113 | resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520" 114 | integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== 115 | dependencies: 116 | ajv "^8.0.0" 117 | 118 | ajv@^8.0.0, ajv@^8.10.0, ajv@^8.11.0: 119 | version "8.11.0" 120 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.11.0.tgz#977e91dd96ca669f54a11e23e378e33b884a565f" 121 | integrity sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg== 122 | dependencies: 123 | fast-deep-equal "^3.1.1" 124 | json-schema-traverse "^1.0.0" 125 | require-from-string "^2.0.2" 126 | uri-js "^4.2.2" 127 | 128 | anymatch@~3.1.2: 129 | version "3.1.2" 130 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" 131 | integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== 132 | dependencies: 133 | normalize-path "^3.0.0" 134 | picomatch "^2.0.4" 135 | 136 | archy@^1.0.0: 137 | version "1.0.0" 138 | resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" 139 | integrity sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw== 140 | 141 | atomic-sleep@^1.0.0: 142 | version "1.0.0" 143 | resolved "https://registry.yarnpkg.com/atomic-sleep/-/atomic-sleep-1.0.0.tgz#eb85b77a601fc932cfe432c5acd364a9e2c9075b" 144 | integrity sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ== 145 | 146 | avvio@^8.1.3: 147 | version "8.2.0" 148 | resolved "https://registry.yarnpkg.com/avvio/-/avvio-8.2.0.tgz#aff28b0266617bf07ffc1c2d5f4220c3663ce1c2" 149 | integrity sha512-bbCQdg7bpEv6kGH41RO/3B2/GMMmJSo2iBK+X8AWN9mujtfUipMDfIjsgHCfpnKqoGEQrrmCDKSa5OQ19+fDmg== 150 | dependencies: 151 | archy "^1.0.0" 152 | debug "^4.0.0" 153 | fastq "^1.6.1" 154 | 155 | balanced-match@^1.0.0: 156 | version "1.0.2" 157 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" 158 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== 159 | 160 | base64-js@^1.3.1: 161 | version "1.5.1" 162 | resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" 163 | integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== 164 | 165 | binary-extensions@^2.0.0: 166 | version "2.2.0" 167 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" 168 | integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== 169 | 170 | brace-expansion@^1.1.7: 171 | version "1.1.11" 172 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 173 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 174 | dependencies: 175 | balanced-match "^1.0.0" 176 | concat-map "0.0.1" 177 | 178 | braces@~3.0.2: 179 | version "3.0.2" 180 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" 181 | integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== 182 | dependencies: 183 | fill-range "^7.0.1" 184 | 185 | browser-level@^1.0.1: 186 | version "1.0.1" 187 | resolved "https://registry.yarnpkg.com/browser-level/-/browser-level-1.0.1.tgz#36e8c3183d0fe1c405239792faaab5f315871011" 188 | integrity sha512-XECYKJ+Dbzw0lbydyQuJzwNXtOpbMSq737qxJN11sIRTErOMShvDpbzTlgju7orJKvx4epULolZAuJGLzCmWRQ== 189 | dependencies: 190 | abstract-level "^1.0.2" 191 | catering "^2.1.1" 192 | module-error "^1.0.2" 193 | run-parallel-limit "^1.1.0" 194 | 195 | buffer@^6.0.3: 196 | version "6.0.3" 197 | resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" 198 | integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== 199 | dependencies: 200 | base64-js "^1.3.1" 201 | ieee754 "^1.2.1" 202 | 203 | call-bind@^1.0.0: 204 | version "1.0.2" 205 | resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" 206 | integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== 207 | dependencies: 208 | function-bind "^1.1.1" 209 | get-intrinsic "^1.0.2" 210 | 211 | catering@^2.1.0, catering@^2.1.1: 212 | version "2.1.1" 213 | resolved "https://registry.yarnpkg.com/catering/-/catering-2.1.1.tgz#66acba06ed5ee28d5286133982a927de9a04b510" 214 | integrity sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w== 215 | 216 | chokidar@^3.5.2: 217 | version "3.5.3" 218 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" 219 | integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== 220 | dependencies: 221 | anymatch "~3.1.2" 222 | braces "~3.0.2" 223 | glob-parent "~5.1.2" 224 | is-binary-path "~2.1.0" 225 | is-glob "~4.0.1" 226 | normalize-path "~3.0.0" 227 | readdirp "~3.6.0" 228 | optionalDependencies: 229 | fsevents "~2.3.2" 230 | 231 | classic-level@^1.2.0: 232 | version "1.2.0" 233 | resolved "https://registry.yarnpkg.com/classic-level/-/classic-level-1.2.0.tgz#2d52bdec8e7a27f534e67fdeb890abef3e643c27" 234 | integrity sha512-qw5B31ANxSluWz9xBzklRWTUAJ1SXIdaVKTVS7HcTGKOAmExx65Wo5BUICW+YGORe2FOUaDghoI9ZDxj82QcFg== 235 | dependencies: 236 | abstract-level "^1.0.2" 237 | catering "^2.1.0" 238 | module-error "^1.0.1" 239 | napi-macros "~2.0.0" 240 | node-gyp-build "^4.3.0" 241 | 242 | concat-map@0.0.1: 243 | version "0.0.1" 244 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 245 | integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== 246 | 247 | cookie@^0.5.0: 248 | version "0.5.0" 249 | resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" 250 | integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== 251 | 252 | debug@^3.2.7: 253 | version "3.2.7" 254 | resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" 255 | integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== 256 | dependencies: 257 | ms "^2.1.1" 258 | 259 | debug@^4.0.0, debug@^4.1.1: 260 | version "4.3.4" 261 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" 262 | integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== 263 | dependencies: 264 | ms "2.1.2" 265 | 266 | dotenv@^16.0.2: 267 | version "16.0.2" 268 | resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.0.2.tgz#0b0f8652c016a3858ef795024508cddc4bffc5bf" 269 | integrity sha512-JvpYKUmzQhYoIFgK2MOnF3bciIZoItIIoryihy0rIA+H4Jy0FmgyKYAHCTN98P5ybGSJcIFbh6QKeJdtZd1qhA== 270 | 271 | es6-error@^4.0.0: 272 | version "4.1.1" 273 | resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" 274 | integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== 275 | 276 | event-target-shim@^5.0.0: 277 | version "5.0.1" 278 | resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" 279 | integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== 280 | 281 | fast-decode-uri-component@^1.0.1: 282 | version "1.0.1" 283 | resolved "https://registry.yarnpkg.com/fast-decode-uri-component/-/fast-decode-uri-component-1.0.1.tgz#46f8b6c22b30ff7a81357d4f59abfae938202543" 284 | integrity sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg== 285 | 286 | fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: 287 | version "3.1.3" 288 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" 289 | integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== 290 | 291 | fast-json-stringify@^5.0.0: 292 | version "5.3.0" 293 | resolved "https://registry.yarnpkg.com/fast-json-stringify/-/fast-json-stringify-5.3.0.tgz#e3f6a86b68fbf9b8ff0e7c892141a719d128b6bb" 294 | integrity sha512-jTlJV/VAaYMtYl5G41uEL8UQT7/fT5W6LuxKxIS/Lpm6bXxmR+reF3m3WgP/WwxXybH61O+xhWK7n9uAsY6zGA== 295 | dependencies: 296 | "@fastify/deepmerge" "^1.0.0" 297 | ajv "^8.10.0" 298 | ajv-formats "^2.1.1" 299 | fast-deep-equal "^3.1.3" 300 | fast-uri "^2.1.0" 301 | rfdc "^1.2.0" 302 | 303 | fast-querystring@^1.0.0: 304 | version "1.0.0" 305 | resolved "https://registry.yarnpkg.com/fast-querystring/-/fast-querystring-1.0.0.tgz#d6151cd025d4b100e09e24045f6c35ae9ff191ef" 306 | integrity sha512-3LQi62IhQoDlmt4ULCYmh17vRO2EtS7hTSsG4WwoKWgV7GLMKBOecEh+aiavASnLx8I2y89OD33AGLo0ccRhzA== 307 | dependencies: 308 | fast-decode-uri-component "^1.0.1" 309 | 310 | fast-redact@^3.1.1: 311 | version "3.1.2" 312 | resolved "https://registry.yarnpkg.com/fast-redact/-/fast-redact-3.1.2.tgz#d58e69e9084ce9fa4c1a6fa98a3e1ecf5d7839aa" 313 | integrity sha512-+0em+Iya9fKGfEQGcd62Yv6onjBmmhV1uh86XVfOU8VwAe6kaFdQCWI9s0/Nnugx5Vd9tdbZ7e6gE2tR9dzXdw== 314 | 315 | fast-uri@^2.0.0, fast-uri@^2.1.0: 316 | version "2.1.0" 317 | resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-2.1.0.tgz#9279432d6b53675c90116b947ed2bbba582d6fb5" 318 | integrity sha512-qKRta6N7BWEFVlyonVY/V+BMLgFqktCUV0QjT259ekAIlbVrMaFnFLxJ4s/JPl4tou56S1BzPufI60bLe29fHA== 319 | 320 | fastify@^4.6.0: 321 | version "4.6.0" 322 | resolved "https://registry.yarnpkg.com/fastify/-/fastify-4.6.0.tgz#47524173eb4013a1f98fb718ba1263f67a02a39a" 323 | integrity sha512-EgWUvcJNvsql1R4g5/ce866BYk8SgJKjGh6AI0e9BR+NidP7hqX1ObiwHEVbkR15A9XwMtkKd3TE/tFZCjsqnA== 324 | dependencies: 325 | "@fastify/ajv-compiler" "^3.1.1" 326 | "@fastify/error" "^3.0.0" 327 | "@fastify/fast-json-stringify-compiler" "^4.0.0" 328 | abstract-logging "^2.0.1" 329 | avvio "^8.1.3" 330 | find-my-way "^7.0.0" 331 | light-my-request "^5.5.1" 332 | pino "^8.0.0" 333 | process-warning "^2.0.0" 334 | proxy-addr "^2.0.7" 335 | rfdc "^1.3.0" 336 | secure-json-parse "^2.4.0" 337 | semver "^7.3.7" 338 | tiny-lru "^8.0.2" 339 | 340 | fastq@^1.6.1: 341 | version "1.13.0" 342 | resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c" 343 | integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== 344 | dependencies: 345 | reusify "^1.0.4" 346 | 347 | fill-range@^7.0.1: 348 | version "7.0.1" 349 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" 350 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== 351 | dependencies: 352 | to-regex-range "^5.0.1" 353 | 354 | find-my-way@^7.0.0: 355 | version "7.2.0" 356 | resolved "https://registry.yarnpkg.com/find-my-way/-/find-my-way-7.2.0.tgz#35090bb1f738e58e005b6831873c01648cb21851" 357 | integrity sha512-27SFA5sSYDYFZCQ/7SSJB0yhStTP/qxKP1OEC8feZvkHFRuD3fGcQ97Y+0w8HpKTDfMYWXGU3h2ETRGt5zPWyA== 358 | dependencies: 359 | fast-deep-equal "^3.1.3" 360 | fast-querystring "^1.0.0" 361 | safe-regex2 "^2.0.0" 362 | 363 | forwarded@0.2.0: 364 | version "0.2.0" 365 | resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" 366 | integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== 367 | 368 | fsevents@~2.3.2: 369 | version "2.3.2" 370 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" 371 | integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== 372 | 373 | function-bind@^1.1.1: 374 | version "1.1.1" 375 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" 376 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== 377 | 378 | get-intrinsic@^1.0.2: 379 | version "1.1.3" 380 | resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.3.tgz#063c84329ad93e83893c7f4f243ef63ffa351385" 381 | integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A== 382 | dependencies: 383 | function-bind "^1.1.1" 384 | has "^1.0.3" 385 | has-symbols "^1.0.3" 386 | 387 | glob-parent@~5.1.2: 388 | version "5.1.2" 389 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" 390 | integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== 391 | dependencies: 392 | is-glob "^4.0.1" 393 | 394 | has-flag@^3.0.0: 395 | version "3.0.0" 396 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 397 | integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== 398 | 399 | has-symbols@^1.0.3: 400 | version "1.0.3" 401 | resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" 402 | integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== 403 | 404 | has@^1.0.3: 405 | version "1.0.3" 406 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" 407 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== 408 | dependencies: 409 | function-bind "^1.1.1" 410 | 411 | ieee754@^1.2.1: 412 | version "1.2.1" 413 | resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" 414 | integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== 415 | 416 | ignore-by-default@^1.0.1: 417 | version "1.0.1" 418 | resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" 419 | integrity sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA== 420 | 421 | ipaddr.js@1.9.1: 422 | version "1.9.1" 423 | resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" 424 | integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== 425 | 426 | is-binary-path@~2.1.0: 427 | version "2.1.0" 428 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" 429 | integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== 430 | dependencies: 431 | binary-extensions "^2.0.0" 432 | 433 | is-buffer@^2.0.5: 434 | version "2.0.5" 435 | resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" 436 | integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== 437 | 438 | is-extglob@^2.1.1: 439 | version "2.1.1" 440 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" 441 | integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== 442 | 443 | is-glob@^4.0.1, is-glob@~4.0.1: 444 | version "4.0.3" 445 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" 446 | integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== 447 | dependencies: 448 | is-extglob "^2.1.1" 449 | 450 | is-number@^7.0.0: 451 | version "7.0.0" 452 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" 453 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== 454 | 455 | isomorphic-fetch@^3.0.0: 456 | version "3.0.0" 457 | resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz#0267b005049046d2421207215d45d6a262b8b8b4" 458 | integrity sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA== 459 | dependencies: 460 | node-fetch "^2.6.1" 461 | whatwg-fetch "^3.4.1" 462 | 463 | joi@^17.3.0: 464 | version "17.6.0" 465 | resolved "https://registry.yarnpkg.com/joi/-/joi-17.6.0.tgz#0bb54f2f006c09a96e75ce687957bd04290054b2" 466 | integrity sha512-OX5dG6DTbcr/kbMFj0KGYxuew69HPcAE3K/sZpEV2nP6e/j/C0HV+HNiBPCASxdx5T7DMoa0s8UeHWMnb6n2zw== 467 | dependencies: 468 | "@hapi/hoek" "^9.0.0" 469 | "@hapi/topo" "^5.0.0" 470 | "@sideway/address" "^4.1.3" 471 | "@sideway/formula" "^3.0.0" 472 | "@sideway/pinpoint" "^2.0.0" 473 | 474 | json-schema-traverse@^1.0.0: 475 | version "1.0.0" 476 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" 477 | integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== 478 | 479 | level-supports@^4.0.0: 480 | version "4.0.1" 481 | resolved "https://registry.yarnpkg.com/level-supports/-/level-supports-4.0.1.tgz#431546f9d81f10ff0fea0e74533a0e875c08c66a" 482 | integrity sha512-PbXpve8rKeNcZ9C1mUicC9auIYFyGpkV9/i6g76tLgANwWhtG2v7I4xNBUlkn3lE2/dZF3Pi0ygYGtLc4RXXdA== 483 | 484 | level-transcoder@^1.0.1: 485 | version "1.0.1" 486 | resolved "https://registry.yarnpkg.com/level-transcoder/-/level-transcoder-1.0.1.tgz#f8cef5990c4f1283d4c86d949e73631b0bc8ba9c" 487 | integrity sha512-t7bFwFtsQeD8cl8NIoQ2iwxA0CL/9IFw7/9gAjOonH0PWTTiRfY7Hq+Ejbsxh86tXobDQ6IOiddjNYIfOBs06w== 488 | dependencies: 489 | buffer "^6.0.3" 490 | module-error "^1.0.1" 491 | 492 | level@^8.0.0: 493 | version "8.0.0" 494 | resolved "https://registry.yarnpkg.com/level/-/level-8.0.0.tgz#41b4c515dabe28212a3e881b61c161ffead14394" 495 | integrity sha512-ypf0jjAk2BWI33yzEaaotpq7fkOPALKAgDBxggO6Q9HGX2MRXn0wbP1Jn/tJv1gtL867+YOjOB49WaUF3UoJNQ== 496 | dependencies: 497 | browser-level "^1.0.1" 498 | classic-level "^1.2.0" 499 | 500 | light-my-request@^5.5.1: 501 | version "5.6.1" 502 | resolved "https://registry.yarnpkg.com/light-my-request/-/light-my-request-5.6.1.tgz#cff5c75d8cb35a354433d75406fea74a2f8bcdb1" 503 | integrity sha512-sbJnC1UBRivi9L1kICr3CESb82pNiPNB3TvtdIrZZqW0Qh8uDXvoywMmWKZlihDcmw952CMICCzM+54LDf+E+g== 504 | dependencies: 505 | cookie "^0.5.0" 506 | process-warning "^2.0.0" 507 | set-cookie-parser "^2.4.1" 508 | 509 | lru-cache@^6.0.0: 510 | version "6.0.0" 511 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" 512 | integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== 513 | dependencies: 514 | yallist "^4.0.0" 515 | 516 | minimatch@^3.1.2: 517 | version "3.1.2" 518 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" 519 | integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== 520 | dependencies: 521 | brace-expansion "^1.1.7" 522 | 523 | module-error@^1.0.1, module-error@^1.0.2: 524 | version "1.0.2" 525 | resolved "https://registry.yarnpkg.com/module-error/-/module-error-1.0.2.tgz#8d1a48897ca883f47a45816d4fb3e3c6ba404d86" 526 | integrity sha512-0yuvsqSCv8LbaOKhnsQ/T5JhyFlCYLPXK3U2sgV10zoKQwzs/MyfuQUOZQ1V/6OCOJsK/TRgNVrPuPDqtdMFtA== 527 | 528 | ms@2.1.2: 529 | version "2.1.2" 530 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" 531 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 532 | 533 | ms@^2.1.1: 534 | version "2.1.3" 535 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" 536 | integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== 537 | 538 | napi-macros@~2.0.0: 539 | version "2.0.0" 540 | resolved "https://registry.yarnpkg.com/napi-macros/-/napi-macros-2.0.0.tgz#2b6bae421e7b96eb687aa6c77a7858640670001b" 541 | integrity sha512-A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg== 542 | 543 | node-fetch@^2.6.1: 544 | version "2.6.7" 545 | resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" 546 | integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== 547 | dependencies: 548 | whatwg-url "^5.0.0" 549 | 550 | node-gyp-build@^4.3.0: 551 | version "4.5.0" 552 | resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.5.0.tgz#7a64eefa0b21112f89f58379da128ac177f20e40" 553 | integrity sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg== 554 | 555 | nodemon@^2.0.20: 556 | version "2.0.20" 557 | resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-2.0.20.tgz#e3537de768a492e8d74da5c5813cb0c7486fc701" 558 | integrity sha512-Km2mWHKKY5GzRg6i1j5OxOHQtuvVsgskLfigG25yTtbyfRGn/GNvIbRyOf1PSCKJ2aT/58TiuUsuOU5UToVViw== 559 | dependencies: 560 | chokidar "^3.5.2" 561 | debug "^3.2.7" 562 | ignore-by-default "^1.0.1" 563 | minimatch "^3.1.2" 564 | pstree.remy "^1.1.8" 565 | semver "^5.7.1" 566 | simple-update-notifier "^1.0.7" 567 | supports-color "^5.5.0" 568 | touch "^3.1.0" 569 | undefsafe "^2.0.5" 570 | 571 | nopt@~1.0.10: 572 | version "1.0.10" 573 | resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" 574 | integrity sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg== 575 | dependencies: 576 | abbrev "1" 577 | 578 | normalize-path@^3.0.0, normalize-path@~3.0.0: 579 | version "3.0.0" 580 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" 581 | integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== 582 | 583 | object-inspect@^1.9.0: 584 | version "1.12.2" 585 | resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" 586 | integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== 587 | 588 | on-exit-leak-free@^2.1.0: 589 | version "2.1.0" 590 | resolved "https://registry.yarnpkg.com/on-exit-leak-free/-/on-exit-leak-free-2.1.0.tgz#5c703c968f7e7f851885f6459bf8a8a57edc9cc4" 591 | integrity sha512-VuCaZZAjReZ3vUwgOB8LxAosIurDiAW0s13rI1YwmaP++jvcxP77AWoQvenZebpCA2m8WC1/EosPYPMjnRAp/w== 592 | 593 | picomatch@^2.0.4, picomatch@^2.2.1: 594 | version "2.3.1" 595 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" 596 | integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== 597 | 598 | pino-abstract-transport@v1.0.0: 599 | version "1.0.0" 600 | resolved "https://registry.yarnpkg.com/pino-abstract-transport/-/pino-abstract-transport-1.0.0.tgz#cc0d6955fffcadb91b7b49ef220a6cc111d48bb3" 601 | integrity sha512-c7vo5OpW4wIS42hUVcT5REsL8ZljsUfBjqV/e2sFxmFEFZiq1XLUp5EYLtuDH6PEHq9W1egWqRbnLUP5FuZmOA== 602 | dependencies: 603 | readable-stream "^4.0.0" 604 | split2 "^4.0.0" 605 | 606 | pino-std-serializers@^6.0.0: 607 | version "6.0.0" 608 | resolved "https://registry.yarnpkg.com/pino-std-serializers/-/pino-std-serializers-6.0.0.tgz#4c20928a1bafca122fdc2a7a4a171ca1c5f9c526" 609 | integrity sha512-mMMOwSKrmyl+Y12Ri2xhH1lbzQxwwpuru9VjyJpgFIH4asSj88F2csdMwN6+M5g1Ll4rmsYghHLQJw81tgZ7LQ== 610 | 611 | pino@^8.0.0: 612 | version "8.5.0" 613 | resolved "https://registry.yarnpkg.com/pino/-/pino-8.5.0.tgz#60943fa2ec0ac4f22b1f8fde199cc2488547261e" 614 | integrity sha512-PuD6sOti8Y+p9zRoNB5dibmfjfM/OU2tEtJFICxw5ulXi1d0qnq/Rt3CsR6aBEAOeyCXP+ZUfiNWW+tt55pNzg== 615 | dependencies: 616 | atomic-sleep "^1.0.0" 617 | fast-redact "^3.1.1" 618 | on-exit-leak-free "^2.1.0" 619 | pino-abstract-transport v1.0.0 620 | pino-std-serializers "^6.0.0" 621 | process-warning "^2.0.0" 622 | quick-format-unescaped "^4.0.3" 623 | real-require "^0.2.0" 624 | safe-stable-stringify "^2.3.1" 625 | sonic-boom "^3.1.0" 626 | thread-stream "^2.0.0" 627 | 628 | process-warning@^2.0.0: 629 | version "2.0.0" 630 | resolved "https://registry.yarnpkg.com/process-warning/-/process-warning-2.0.0.tgz#341dbeaac985b90a04ebcd844d50097c7737b2ee" 631 | integrity sha512-+MmoAXoUX+VTHAlwns0h+kFUWFs/3FZy+ZuchkgjyOu3oioLAo2LB5aCfKPh2+P9O18i3m43tUEv3YqttSy0Ww== 632 | 633 | proxy-addr@^2.0.7: 634 | version "2.0.7" 635 | resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" 636 | integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== 637 | dependencies: 638 | forwarded "0.2.0" 639 | ipaddr.js "1.9.1" 640 | 641 | pstree.remy@^1.1.8: 642 | version "1.1.8" 643 | resolved "https://registry.yarnpkg.com/pstree.remy/-/pstree.remy-1.1.8.tgz#c242224f4a67c21f686839bbdb4ac282b8373d3a" 644 | integrity sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w== 645 | 646 | punycode@^2.1.0: 647 | version "2.1.1" 648 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" 649 | integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== 650 | 651 | qs@^6.3.0: 652 | version "6.11.0" 653 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" 654 | integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== 655 | dependencies: 656 | side-channel "^1.0.4" 657 | 658 | queue-microtask@^1.2.2, queue-microtask@^1.2.3: 659 | version "1.2.3" 660 | resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" 661 | integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== 662 | 663 | quick-format-unescaped@^4.0.3: 664 | version "4.0.4" 665 | resolved "https://registry.yarnpkg.com/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz#93ef6dd8d3453cbc7970dd614fad4c5954d6b5a7" 666 | integrity sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg== 667 | 668 | readable-stream@^4.0.0: 669 | version "4.1.0" 670 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-4.1.0.tgz#280d0a29f559d3fb684a277254e02b6f61ae0631" 671 | integrity sha512-sVisi3+P2lJ2t0BPbpK629j8wRW06yKGJUcaLAGXPAUhyUxVJm7VsCTit1PFgT4JHUDMrGNR+ZjSKpzGaRF3zw== 672 | dependencies: 673 | abort-controller "^3.0.0" 674 | 675 | readdirp@~3.6.0: 676 | version "3.6.0" 677 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" 678 | integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== 679 | dependencies: 680 | picomatch "^2.2.1" 681 | 682 | real-require@^0.2.0: 683 | version "0.2.0" 684 | resolved "https://registry.yarnpkg.com/real-require/-/real-require-0.2.0.tgz#209632dea1810be2ae063a6ac084fee7e33fba78" 685 | integrity sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg== 686 | 687 | require-from-string@^2.0.2: 688 | version "2.0.2" 689 | resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" 690 | integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== 691 | 692 | ret@~0.2.0: 693 | version "0.2.2" 694 | resolved "https://registry.yarnpkg.com/ret/-/ret-0.2.2.tgz#b6861782a1f4762dce43402a71eb7a283f44573c" 695 | integrity sha512-M0b3YWQs7R3Z917WRQy1HHA7Ba7D8hvZg6UE5mLykJxQVE2ju0IXbGlaHPPlkY+WN7wFP+wUMXmBFA0aV6vYGQ== 696 | 697 | reusify@^1.0.4: 698 | version "1.0.4" 699 | resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" 700 | integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== 701 | 702 | rfdc@^1.2.0, rfdc@^1.3.0: 703 | version "1.3.0" 704 | resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" 705 | integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== 706 | 707 | run-parallel-limit@^1.1.0: 708 | version "1.1.0" 709 | resolved "https://registry.yarnpkg.com/run-parallel-limit/-/run-parallel-limit-1.1.0.tgz#be80e936f5768623a38a963262d6bef8ff11e7ba" 710 | integrity sha512-jJA7irRNM91jaKc3Hcl1npHsFLOXOoTkPCUL1JEa1R82O2miplXXRaGdjW/KM/98YQWDhJLiSs793CnXfblJUw== 711 | dependencies: 712 | queue-microtask "^1.2.2" 713 | 714 | safe-regex2@^2.0.0: 715 | version "2.0.0" 716 | resolved "https://registry.yarnpkg.com/safe-regex2/-/safe-regex2-2.0.0.tgz#b287524c397c7a2994470367e0185e1916b1f5b9" 717 | integrity sha512-PaUSFsUaNNuKwkBijoAPHAK6/eM6VirvyPWlZ7BAQy4D+hCvh4B6lIG+nPdhbFfIbP+gTGBcrdsOaUs0F+ZBOQ== 718 | dependencies: 719 | ret "~0.2.0" 720 | 721 | safe-stable-stringify@^2.3.1: 722 | version "2.4.0" 723 | resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.4.0.tgz#95fadb1bcf8057a1363e11052122f5da36a69215" 724 | integrity sha512-eehKHKpab6E741ud7ZIMcXhKcP6TSIezPkNZhy5U8xC6+VvrRdUA2tMgxGxaGl4cz7c2Ew5+mg5+wNB16KQqrA== 725 | 726 | secure-json-parse@^2.4.0: 727 | version "2.5.0" 728 | resolved "https://registry.yarnpkg.com/secure-json-parse/-/secure-json-parse-2.5.0.tgz#f929829df2adc7ccfb53703569894d051493a6ac" 729 | integrity sha512-ZQruFgZnIWH+WyO9t5rWt4ZEGqCKPwhiw+YbzTwpmT9elgLrLcfuyUiSnwwjUiVy9r4VM3urtbNF1xmEh9IL2w== 730 | 731 | semver@^5.7.1: 732 | version "5.7.1" 733 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" 734 | integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== 735 | 736 | semver@^7.3.7: 737 | version "7.3.7" 738 | resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f" 739 | integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== 740 | dependencies: 741 | lru-cache "^6.0.0" 742 | 743 | semver@~7.0.0: 744 | version "7.0.0" 745 | resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" 746 | integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== 747 | 748 | set-cookie-parser@^2.4.1: 749 | version "2.5.1" 750 | resolved "https://registry.yarnpkg.com/set-cookie-parser/-/set-cookie-parser-2.5.1.tgz#ddd3e9a566b0e8e0862aca974a6ac0e01349430b" 751 | integrity sha512-1jeBGaKNGdEq4FgIrORu/N570dwoPYio8lSoYLWmX7sQ//0JY08Xh9o5pBcgmHQ/MbsYp/aZnOe1s1lIsbLprQ== 752 | 753 | side-channel@^1.0.4: 754 | version "1.0.4" 755 | resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" 756 | integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== 757 | dependencies: 758 | call-bind "^1.0.0" 759 | get-intrinsic "^1.0.2" 760 | object-inspect "^1.9.0" 761 | 762 | simple-oauth2@^4.3.0: 763 | version "4.3.0" 764 | resolved "https://registry.yarnpkg.com/simple-oauth2/-/simple-oauth2-4.3.0.tgz#8b8c28a7f7145a77a2a03086b1adb1e9ba5abc98" 765 | integrity sha512-gjLIfy7M7WZSf3k5IZCQfEozbQwmW80zR9YMH4ph/WWG6S4U6sGhPujz8X6Hj6sZ8l7acSAxiyM4tF0vIN+E+A== 766 | dependencies: 767 | "@hapi/hoek" "^9.0.4" 768 | "@hapi/wreck" "^17.0.0" 769 | debug "^4.1.1" 770 | joi "^17.3.0" 771 | 772 | simple-update-notifier@^1.0.7: 773 | version "1.0.7" 774 | resolved "https://registry.yarnpkg.com/simple-update-notifier/-/simple-update-notifier-1.0.7.tgz#7edf75c5bdd04f88828d632f762b2bc32996a9cc" 775 | integrity sha512-BBKgR84BJQJm6WjWFMHgLVuo61FBDSj1z/xSFUIozqO6wO7ii0JxCqlIud7Enr/+LhlbNI0whErq96P2qHNWew== 776 | dependencies: 777 | semver "~7.0.0" 778 | 779 | sonic-boom@^3.1.0: 780 | version "3.2.0" 781 | resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-3.2.0.tgz#ce9f2de7557e68be2e52c8df6d9b052e7d348143" 782 | integrity sha512-SbbZ+Kqj/XIunvIAgUZRlqd6CGQYq71tRRbXR92Za8J/R3Yh4Av+TWENiSiEgnlwckYLyP0YZQWVfyNC0dzLaA== 783 | dependencies: 784 | atomic-sleep "^1.0.0" 785 | 786 | split2@^4.0.0: 787 | version "4.1.0" 788 | resolved "https://registry.yarnpkg.com/split2/-/split2-4.1.0.tgz#101907a24370f85bb782f08adaabe4e281ecf809" 789 | integrity sha512-VBiJxFkxiXRlUIeyMQi8s4hgvKCSjtknJv/LVYbrgALPwf5zSKmEwV9Lst25AkvMDnvxODugjdl6KZgwKM1WYQ== 790 | 791 | supports-color@^5.5.0: 792 | version "5.5.0" 793 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" 794 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== 795 | dependencies: 796 | has-flag "^3.0.0" 797 | 798 | thread-stream@^2.0.0: 799 | version "2.2.0" 800 | resolved "https://registry.yarnpkg.com/thread-stream/-/thread-stream-2.2.0.tgz#310c03a253f729094ce5d4638ef5186dfa80a9e8" 801 | integrity sha512-rUkv4/fnb4rqy/gGy7VuqK6wE1+1DOCOWy4RMeaV69ZHMP11tQKZvZSip1yTgrKCMZzEMcCL/bKfHvSfDHx+iQ== 802 | dependencies: 803 | real-require "^0.2.0" 804 | 805 | tiny-lru@^8.0.2: 806 | version "8.0.2" 807 | resolved "https://registry.yarnpkg.com/tiny-lru/-/tiny-lru-8.0.2.tgz#812fccbe6e622ded552e3ff8a4c3b5ff34a85e4c" 808 | integrity sha512-ApGvZ6vVvTNdsmt676grvCkUCGwzG9IqXma5Z07xJgiC5L7akUMof5U8G2JTI9Rz/ovtVhJBlY6mNhEvtjzOIg== 809 | 810 | to-regex-range@^5.0.1: 811 | version "5.0.1" 812 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" 813 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== 814 | dependencies: 815 | is-number "^7.0.0" 816 | 817 | touch@^3.1.0: 818 | version "3.1.0" 819 | resolved "https://registry.yarnpkg.com/touch/-/touch-3.1.0.tgz#fe365f5f75ec9ed4e56825e0bb76d24ab74af83b" 820 | integrity sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA== 821 | dependencies: 822 | nopt "~1.0.10" 823 | 824 | tr46@~0.0.3: 825 | version "0.0.3" 826 | resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" 827 | integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== 828 | 829 | undefsafe@^2.0.5: 830 | version "2.0.5" 831 | resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.5.tgz#38733b9327bdcd226db889fb723a6efd162e6e2c" 832 | integrity sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA== 833 | 834 | uri-js@^4.2.2: 835 | version "4.4.1" 836 | resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" 837 | integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== 838 | dependencies: 839 | punycode "^2.1.0" 840 | 841 | webflow-api@^0.8.1: 842 | version "0.8.1" 843 | resolved "https://registry.yarnpkg.com/webflow-api/-/webflow-api-0.8.1.tgz#4ce8fd4531f27c4672677bea58e9d180461b27a2" 844 | integrity sha512-oWlLSDwxNME+y1BnqiRZgChL8e5Thuc2MboUcKgamKHFgXaS3NRlFMpLlSt6xy+7CNLFeCfigZ+h3SwV+22niA== 845 | dependencies: 846 | es6-error "^4.0.0" 847 | isomorphic-fetch "^3.0.0" 848 | qs "^6.3.0" 849 | 850 | webidl-conversions@^3.0.0: 851 | version "3.0.1" 852 | resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" 853 | integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== 854 | 855 | whatwg-fetch@^3.4.1: 856 | version "3.6.2" 857 | resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz#dced24f37f2624ed0281725d51d0e2e3fe677f8c" 858 | integrity sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA== 859 | 860 | whatwg-url@^5.0.0: 861 | version "5.0.0" 862 | resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" 863 | integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== 864 | dependencies: 865 | tr46 "~0.0.3" 866 | webidl-conversions "^3.0.0" 867 | 868 | yallist@^4.0.0: 869 | version "4.0.0" 870 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" 871 | integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== 872 | --------------------------------------------------------------------------------