├── docs ├── include.md ├── subdir │ ├── b.md │ ├── a.md │ └── subsubdir │ │ └── c.md ├── footer.md ├── navbar.md ├── logo.svg ├── github.md └── README.md ├── tests ├── .gitignore ├── .editorconfig ├── package.json ├── playwright.config.js ├── server.js ├── main.test.js └── yarn.lock ├── .github └── workflows │ └── test.yml ├── README.md ├── LICENSE └── index.html /docs/include.md: -------------------------------------------------------------------------------- 1 | This is an include ! 2 | -------------------------------------------------------------------------------- /docs/subdir/b.md: -------------------------------------------------------------------------------- 1 | # b 2 | 3 | Link to [a](a.md) 4 | -------------------------------------------------------------------------------- /tests/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | test-results 3 | -------------------------------------------------------------------------------- /docs/footer.md: -------------------------------------------------------------------------------- 1 | Made with love by [arnaudsm](https://arnaud.at) under MIT License 2 | -------------------------------------------------------------------------------- /docs/subdir/a.md: -------------------------------------------------------------------------------- 1 | # a 2 | 3 | - Link to [b](b.md) 4 | - Link to [Homepage](../..) 5 | -------------------------------------------------------------------------------- /docs/navbar.md: -------------------------------------------------------------------------------- 1 | - [ Raito](README.md) 2 | - [Docs](docs/) 3 | -------------------------------------------------------------------------------- /docs/subdir/subsubdir/c.md: -------------------------------------------------------------------------------- 1 | # c 2 | 3 | - Link to [b](../b) 4 | - Link to [Homepage](../../..) 5 | -------------------------------------------------------------------------------- /tests/.editorconfig: -------------------------------------------------------------------------------- 1 | root=true 2 | 3 | [*] 4 | charset=utf-8 5 | end_of_line=lf 6 | insert_final_newline=true 7 | indent_style = tab 8 | indent_size = tab 9 | trim_trailing_whitespace=true 10 | max_line_length=200 11 | indent_inner_html=false 12 | -------------------------------------------------------------------------------- /tests/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "raito-test", 3 | "version": "1.0.0", 4 | "main": "index.js", 5 | "type": "module", 6 | "license": "MIT", 7 | "scripts": { 8 | "start": "node server.js", 9 | "test": "npx playwright test", 10 | "debug": "npx playwright test --ui" 11 | }, 12 | "dependencies": { 13 | "@fastify/static": "^6.10.2", 14 | "@playwright/test": "^1.36.0", 15 | "fastify": "^4.19.2", 16 | "nodemon": "^3.0.1" 17 | }, 18 | "devDependencies": {} 19 | } 20 | -------------------------------------------------------------------------------- /.github/workflows/test.yml: -------------------------------------------------------------------------------- 1 | name: Test 2 | 3 | on: 4 | pull_request: 5 | types: 6 | - opened 7 | - reopened 8 | - synchronize 9 | - ready_for_review 10 | 11 | jobs: 12 | test: 13 | runs-on: ubuntu-latest 14 | defaults: 15 | run: 16 | working-directory: ./tests 17 | steps: 18 | - name: Checkout 19 | uses: actions/checkout@v3 20 | 21 | - name: Setup Node 22 | uses: actions/setup-node@v3 23 | with: 24 | node-version: 16 25 | 26 | - name: Yarn install 27 | run: yarn 28 | 29 | - name: Chromium install 30 | run: npx playwright install chromium 31 | 32 | - name: Test 33 | run: yarn test 34 | -------------------------------------------------------------------------------- /tests/playwright.config.js: -------------------------------------------------------------------------------- 1 | import { test as base, defineConfig } from '@playwright/test'; 2 | 3 | const test = base.extend({ 4 | baseUrl: [null, { option: true }], 5 | prefix: ["", { option: true }], 6 | }); 7 | 8 | export { test } 9 | 10 | export default defineConfig({ 11 | webServer: { 12 | command: 'yarn start', 13 | url: 'http://localhost:3001', 14 | stderr: 'pipe', 15 | }, 16 | projects: [ 17 | { 18 | name: "star", 19 | use: { 20 | baseUrl: "http://localhost:3001", 21 | }, 22 | }, 23 | { 24 | name: "hash", 25 | use: { 26 | baseUrl: "http://localhost:3000/#", 27 | prefix: "/#" 28 | }, 29 | }, 30 | { 31 | name: "subdir", 32 | use: { 33 | baseUrl: "http://localhost:3002/subdir/#", 34 | prefix: "/subdir/#" 35 | }, 36 | } 37 | ] 38 | }); 39 | -------------------------------------------------------------------------------- /docs/logo.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |  2 | 3 | # [Raito](https://raito.arnaud.at) - Mini Markdown CMS ✨📝 4 | > Build your website with a single file! 5 | 6 | Raito is an ultralight static CMS/Wiki that weights 8kb. 7 | Hence the name, ライト meaning *light* in Japanese. 8 | 9 | Made by [Arnaud de Saint Meloir](https://arnaud.at), inspired by the defunct [MDwiki](https://github.com/Dynalon/mdwiki/) 10 | 11 | **[🔥 Demo](https://raito.arnaud.at) | [📄 Docs](docs/)** 12 | 13 | ## Install 14 | - Copy `index.html` to your website root 15 | - Write your homepage in `README.md` 16 | - Every MarkDown file will turn into a page ✨ 17 | 18 | ## Testing 19 | - Install Node 16+ and Yarn 20 | - `cd tests` 21 | - `yarn` to install dependencies 22 | - `yarn test` to run tests 23 | - `yarn start` to start the HTTP servers 24 | - `yarn debug` to debug tests interactively 25 | 26 | ### Dependencies 27 | - [Marked.js](https://github.com/markedjs/marked/) 28 | - [highlight.js](https://github.com/highlightjs/highlight.js/) (Optional) 29 | -------------------------------------------------------------------------------- /tests/server.js: -------------------------------------------------------------------------------- 1 | import Fastify from "fastify"; 2 | import fastifyStatic from "@fastify/static"; 3 | import path from "path"; 4 | import { fileURLToPath } from "url"; 5 | import fs from "fs"; 6 | 7 | const root = path.join(path.dirname(fileURLToPath(import.meta.url)), ".."); 8 | 9 | const app = ({ port, rewrite, prefix, name = "Default Routing" }) => { 10 | const app = Fastify(); 11 | let html = fs.readFileSync("../index.html", "utf-8"); 12 | if (rewrite) html = rewrite(html); 13 | 14 | app.register(fastifyStatic, { 15 | root, 16 | wildcard: false, 17 | prefix, 18 | allowedPath: (path) => !["index.html", "/"].includes(path), 19 | }); 20 | app.setNotFoundHandler((_, reply) => { 21 | reply.code(200).type("text/html").send(html); 22 | }); 23 | app.listen({ port }); 24 | console.log(`${name}: http://localhost:${port}`); 25 | }; 26 | 27 | app({ port: 3000 }); 28 | app({ port: 3001, name: "Browser Routing", rewrite: (html) => html.replace("browserRouter: false,", "browserRouter: true,") }); 29 | app({ port: 3002, name: "Subdir Routing ", rewrite: (html) => html.replace('sitePath: "/"', 'sitePath: "/subdir/"'), prefix: "/subdir/" }); 30 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 Arnaud de Saint Meloir 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 | -------------------------------------------------------------------------------- /docs/github.md: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/README.md: -------------------------------------------------------------------------------- 1 | # Docs 2 | 3 | ## Pages 4 | Every markdown file becomes a page. 5 | Root paths redirect to `README.md`. 6 | 7 | ``` 8 | ├── folder 9 | │ ├── page.md = example.com/#/folder/page 10 | │ └── README.md = example.com/#/folder/ 11 | ├── about.md = example.com/#/about 12 | ├── README.md = example.com/#/ 13 | └── index.html 14 | ``` 15 | 16 | ## Browser Router 17 | Recommended to improve SEO and user experience. 18 | 19 | Browser Router is disabled by default, since it requires a default redirection to `index.html` 20 | CloudFlare Pages does it by default. 21 | 22 | 23 | | Config | Example URL | SEO Friendly | 24 | | ---------------------- | -------------------- | ------------ | 25 | | `browserRouter: false` | `example.com/#/page` | ❌ | 26 | | `browserRouter: true` | `example.com/page` | ✅ | 27 | 28 | 29 | ## Components and footer 30 | 31 | Components are visible in every page. Useful for navbars, sidebars and footers. 32 | 33 | Create your component in a `.md` file, then add it to the `components` or `footers` list in `index.html`. 34 | 35 | Components are added before the content div, and Footers after it. 36 | 37 | ``` 38 | ├── navbar.md 39 | ├── index.html 40 | └── footer.md 41 | ``` 42 | 43 | Then add it to the `components`/`footers` list in `index.html`. 44 | 45 | ``` 46 | const config = { 47 | components: ["navbar"], 48 | footers: ["footer.md"], 49 | } 50 | ``` 51 | 52 | ## Links 53 | ```markdown 54 | - [Absolute Link](https://www.youtube.com/watch?v=dQw4w9WgXcQ) 55 | - [Relative Link](subdir/b.md) 56 | - [Parent Page](README.md) 57 | ``` 58 | Output ⬇️ 59 | 60 | - [Absolute Link](https://www.youtube.com/watch?v=dQw4w9WgXcQ) 61 | - [Relative Link](subdir/b.md) 62 | - [Parent Page](README.md) 63 | 64 | ## Blockquotes 65 | ```markdown 66 | > Not all those who wander are lost 67 | ``` 68 | 69 | Output ⬇️ 70 | > Not all those who wander are lost 71 | 72 | ## Tables 73 | ```markdown 74 | | Ingredient | Quantity | Price | 75 | | ---------- | -------- | ----- | 76 | | Milk | 1L | $5 | 77 | | Flour | 350g | $2 | 78 | | Eggs | 6 | $6.50 | 79 | ``` 80 | 81 | Output ⬇️ 82 | | Ingredient | Quantity | Price | 83 | | ---------- | -------- | ----- | 84 | | Milk | 1L | $5 | 85 | | Flour | 350g | $2 | 86 | | Eggs | 6 | $6.50 | 87 | 88 | ## Checklists 89 | ```markdown 90 | - [x] Beer 91 | - [ ] Pancakes 92 | ``` 93 | 94 | Output ⬇️ 95 | - [x] Beer 96 | - [ ] Pancakes 97 | 98 | ## Lists 99 | ```markdown 100 | - Frodo Baggins 101 | - Gandalf the Grey 102 | ``` 103 | Output ⬇️ 104 | - Frodo Baggins 105 | - Gandalf the Grey 106 | 107 | ## Code Blocks 108 | ````markdown 109 | ```js 110 | var foo = function (bar) { 111 | return bar++; 112 | }; 113 | ``` 114 | ```` 115 | Output ⬇️ 116 | ``` js 117 | var foo = function (bar) { 118 | return bar++; 119 | }; 120 | ``` 121 | 122 | Synthax highlighting is optional. Enable by uncommenting the [highlight.js](https://github.com/highlightjs/highlight.js/) imports in `index.html`. 123 | 124 | ## Images 125 | ```markdown 126 |  127 | ``` 128 | Output ⬇️ 129 | 130 |  131 | 132 | 133 | ## HTML 134 | ```markdown 135 | My favorite album 136 | ``` 137 | Output ⬇️ 138 | 139 | My favorite album 140 | 141 | ## Include 142 | ```markdown 143 | include(include.md) 144 | ``` 145 | Output ⬇️ 146 | include(include.md) 147 | 148 | ## Internal Anchors 149 | ```markdown 150 | [Link Documentation](#links) 151 | ``` 152 | Output ⬇️ 153 | 154 | [Link Documentation](#links) 155 | -------------------------------------------------------------------------------- /tests/main.test.js: -------------------------------------------------------------------------------- 1 | import { expect } from "@playwright/test"; 2 | import { test } from "./playwright.config"; 3 | 4 | const isHomePage = async ({ page, prefix, baseUrl }) => { 5 | await expect(page).toHaveURL(baseUrl + "/"); 6 | await expect(page).toHaveTitle("Raito - Mini Markdown CMS ✨📝 | Raito"); 7 | await expect(page.getByRole("link", { name: "Raito Logo" })).toBeVisible(); 8 | await expect(await page.locator("#content img").getAttribute("src")).toEqual("docs/logo.svg"); 9 | await expect(await page.getByText("Arnaud de Saint Meloir").getAttribute("href")).toEqual("https://arnaud.at"); 10 | }; 11 | 12 | const isDocsPage = async ({ page, prefix, baseUrl }) => { 13 | await expect(page).toHaveURL(baseUrl + "/docs/"); 14 | await expect(page).toHaveTitle("Docs | Raito"); 15 | await expect(page.getByRole("heading", { name: "Docs" })).toBeVisible(); 16 | await expect(await page.getByRole("link", { name: "Absolute Link" }).getAttribute("href")).toEqual("https://www.youtube.com/watch?v=dQw4w9WgXcQ"); 17 | await expect(await page.getByRole("link", { name: "Relative Link" }).getAttribute("href")).toEqual(prefix + "/docs/subdir/b"); 18 | }; 19 | 20 | test("Homepage", async ({ page, prefix, baseUrl }) => { 21 | await page.goto(baseUrl + "/"); 22 | await isHomePage({ page, prefix, baseUrl }); 23 | }); 24 | 25 | test("Docs", async ({ page, prefix, baseUrl }) => { 26 | await page.goto(baseUrl + "/docs/"); 27 | await isDocsPage({ page, prefix, baseUrl }); 28 | }); 29 | 30 | test("Navbar", async ({ page, prefix, baseUrl }) => { 31 | await page.goto(baseUrl + "/"); 32 | await isHomePage({ page, prefix, baseUrl }); 33 | await page.locator("#docs-navbar").getByText("Docs").click(); 34 | await isDocsPage({ page, prefix, baseUrl }); 35 | await page.locator("#docs-navbar").getByText("Raito").click(); 36 | await isHomePage({ page, prefix, baseUrl }); 37 | }); 38 | 39 | test("Anchors", async ({ page, prefix, baseUrl }) => { 40 | await page.goto(baseUrl + "/"); 41 | await expect(page).toHaveURL(baseUrl + "/"); 42 | await page.getByText("📄 Docs").click(); 43 | await isDocsPage({ page, prefix, baseUrl }); 44 | }); 45 | 46 | test("Include", async ({ page, prefix, baseUrl }) => { 47 | await page.goto(baseUrl + "/docs/"); 48 | await expect(page.getByText("This is an include !")).toBeVisible(); 49 | }); 50 | 51 | test("History", async ({ page, prefix, baseUrl }) => { 52 | await page.goto(baseUrl + "/"); 53 | await isHomePage({ page, prefix, baseUrl }); 54 | 55 | await page.getByText("📄 Docs").click(); 56 | await isDocsPage({ page, prefix, baseUrl }); 57 | 58 | await page.goBack(); 59 | await isHomePage({ page, prefix, baseUrl }); 60 | 61 | await page.goForward(); 62 | await isDocsPage({ page, prefix, baseUrl }); 63 | }); 64 | 65 | test("Subdirectories", async ({ page, prefix, baseUrl }) => { 66 | await page.goto(baseUrl + "/docs/subdir/a"); 67 | await expect(page).toHaveURL(baseUrl + "/docs/subdir/a"); 68 | await expect(await page.getByRole("link", { name: "Raito Logo" }).getAttribute("href")).toEqual(prefix + "/"); 69 | await expect(await page.getByText("Docs").getAttribute("href")).toEqual(prefix + "/docs/"); 70 | await expect(await page.getByText("Homepage").getAttribute("href")).toEqual(prefix || "/"); 71 | 72 | await page.getByText("b", { exact: true }).click(); 73 | await expect(page).toHaveURL(baseUrl + "/docs/subdir/b"); 74 | 75 | await page.getByRole("link", { name: "a", exact: true }).click(); 76 | await expect(page).toHaveURL(baseUrl + "/docs/subdir/a"); 77 | 78 | await page.goto(baseUrl + "/docs/subdir/subsubdir/c"); 79 | await expect(await page.getByText("b", { exact: true }).getAttribute("href")).toEqual(prefix + "/docs/subdir/b"); 80 | await expect(await page.getByText("Homepage").getAttribute("href")).toEqual(prefix || "/"); 81 | }); 82 | 83 | test("Root", async ({ page, prefix, baseUrl }) => { 84 | const { origin } = new URL(baseUrl); 85 | await page.goto(origin); 86 | await isHomePage({ page, prefix, baseUrl }); 87 | }); 88 | 89 | const sleep = (time) => new Promise((res) => setTimeout(res, time, "done sleeping")); 90 | 91 | test("Internal Anchors", async ({ page, prefix, baseUrl }) => { 92 | await page.goto(baseUrl + "/docs/"); 93 | await page.getByRole("link", { name: "Link Documentation" }).click(); 94 | await expect(page).toHaveURL(baseUrl + "/docs/#links"); 95 | await expect(page.getByRole("heading", { name: "Links" })).toBeInViewport(); 96 | }); 97 | 98 | test("Internal Anchors Direct", async ({ page, prefix, baseUrl }) => { 99 | await page.goto(baseUrl); 100 | await page.goto(baseUrl + "/docs/#links"); 101 | await expect(page.getByRole("heading", { name: "Links" })).toBeInViewport(); 102 | }); 103 | 104 | test("404", async ({ page, prefix, baseUrl }) => { 105 | await page.goto(baseUrl + "/does/not/exist"); 106 | await isHomePage({ page, prefix, baseUrl }); 107 | }); 108 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |
5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 21 | 22 | 95 | 96 | 97 | 98 | 99 | 100 | 104 | 105 | 313 | 314 | 315 | 316 | 317 | 318 | 319 | 462 | 463 | 464 | -------------------------------------------------------------------------------- /tests/yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@fastify/accept-negotiator@^1.0.0": 6 | version "1.1.0" 7 | resolved "https://registry.yarnpkg.com/@fastify/accept-negotiator/-/accept-negotiator-1.1.0.tgz#c1c66b3b771c09742a54dd5bc87c582f6b0630ff" 8 | integrity sha512-OIHZrb2ImZ7XG85HXOONLcJWGosv7sIvM2ifAPQVhg9Lv7qdmMBNVaai4QTdyuaqbKM5eO6sLSQOYI7wEQeCJQ== 9 | 10 | "@fastify/ajv-compiler@^3.5.0": 11 | version "3.5.0" 12 | resolved "https://registry.yarnpkg.com/@fastify/ajv-compiler/-/ajv-compiler-3.5.0.tgz#459bff00fefbf86c96ec30e62e933d2379e46670" 13 | integrity sha512-ebbEtlI7dxXF5ziNdr05mOY8NnDiPB1XvAlLHctRt/Rc+C3LCOVW5imUVX+mhvUhnNzmPBHewUkOFgGlCxgdAA== 14 | dependencies: 15 | ajv "^8.11.0" 16 | ajv-formats "^2.1.1" 17 | fast-uri "^2.0.0" 18 | 19 | "@fastify/deepmerge@^1.0.0": 20 | version "1.3.0" 21 | resolved "https://registry.yarnpkg.com/@fastify/deepmerge/-/deepmerge-1.3.0.tgz#8116858108f0c7d9fd460d05a7d637a13fe3239a" 22 | integrity sha512-J8TOSBq3SoZbDhM9+R/u77hP93gz/rajSA+K2kGyijPpORPWUXHUpTaleoj+92As0S9uPRP7Oi8IqMf0u+ro6A== 23 | 24 | "@fastify/error@^3.2.0": 25 | version "3.3.0" 26 | resolved "https://registry.yarnpkg.com/@fastify/error/-/error-3.3.0.tgz#eba790082e1144bfc8def0c2c8ef350064bc537b" 27 | integrity sha512-dj7vjIn1Ar8sVXj2yAXiMNCJDmS9MQ9XMlIecX2dIzzhjSHCyKo4DdXjXMs7wKW2kj6yvVRSpuQjOZ3YLrh56w== 28 | 29 | "@fastify/fast-json-stringify-compiler@^4.3.0": 30 | version "4.3.0" 31 | resolved "https://registry.yarnpkg.com/@fastify/fast-json-stringify-compiler/-/fast-json-stringify-compiler-4.3.0.tgz#5df89fa4d1592cbb8780f78998355feb471646d5" 32 | integrity sha512-aZAXGYo6m22Fk1zZzEUKBvut/CIIQe/BapEORnxiD5Qr0kPHqqI69NtEMCme74h+at72sPhbkb4ZrLd1W3KRLA== 33 | dependencies: 34 | fast-json-stringify "^5.7.0" 35 | 36 | "@fastify/send@^2.0.0": 37 | version "2.1.0" 38 | resolved "https://registry.yarnpkg.com/@fastify/send/-/send-2.1.0.tgz#1aa269ccb4b0940a2dadd1f844443b15d8224ea0" 39 | integrity sha512-yNYiY6sDkexoJR0D8IDy3aRP3+L4wdqCpvx5WP+VtEU58sn7USmKynBzDQex5X42Zzvw2gNzzYgP90UfWShLFA== 40 | dependencies: 41 | "@lukeed/ms" "^2.0.1" 42 | escape-html "~1.0.3" 43 | fast-decode-uri-component "^1.0.1" 44 | http-errors "2.0.0" 45 | mime "^3.0.0" 46 | 47 | "@fastify/static@^6.10.2": 48 | version "6.10.2" 49 | resolved "https://registry.yarnpkg.com/@fastify/static/-/static-6.10.2.tgz#dfaaccfa191a4ba85ea8e3926853c9e6d979e67f" 50 | integrity sha512-UoaMvIHSBLCZBYOVZwFRYqX2ufUhd7FFMYGDeSf0Z+D8jhYtwljjmuQGuanUP8kS4y/ZEV1a8mfLha3zNwsnnQ== 51 | dependencies: 52 | "@fastify/accept-negotiator" "^1.0.0" 53 | "@fastify/send" "^2.0.0" 54 | content-disposition "^0.5.3" 55 | fastify-plugin "^4.0.0" 56 | glob "^8.0.1" 57 | p-limit "^3.1.0" 58 | readable-stream "^4.0.0" 59 | 60 | "@lukeed/ms@^2.0.1": 61 | version "2.0.1" 62 | resolved "https://registry.yarnpkg.com/@lukeed/ms/-/ms-2.0.1.tgz#3c2bbc258affd9cc0e0cc7828477383c73afa6ee" 63 | integrity sha512-Xs/4RZltsAL7pkvaNStUQt7netTkyxrS0K+RILcVr3TRMS/ToOg4I6uNfhB9SlGsnWBym4U+EaXq0f0cEMNkHA== 64 | 65 | "@playwright/test@^1.36.0": 66 | version "1.36.0" 67 | resolved "https://registry.yarnpkg.com/@playwright/test/-/test-1.36.0.tgz#df2c0b09bbd27016adf1892b0c3502c4ce88d307" 68 | integrity sha512-yN+fvMYtiyLFDCQos+lWzoX4XW3DNuaxjBu68G0lkgLgC6BP+m/iTxJQoSicz/x2G5EsrqlZTqTIP9sTgLQerg== 69 | dependencies: 70 | "@types/node" "*" 71 | playwright-core "1.36.0" 72 | optionalDependencies: 73 | fsevents "2.3.2" 74 | 75 | "@types/node@*": 76 | version "20.4.1" 77 | resolved "https://registry.yarnpkg.com/@types/node/-/node-20.4.1.tgz#a6033a8718653c50ac4962977e14d0f984d9527d" 78 | integrity sha512-JIzsAvJeA/5iY6Y/OxZbv1lUcc8dNSE77lb2gnBH+/PJ3lFR1Ccvgwl5JWnHAkNHcRsT0TbpVOsiMKZ1F/yyJg== 79 | 80 | abbrev@1: 81 | version "1.1.1" 82 | resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" 83 | integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== 84 | 85 | abort-controller@^3.0.0: 86 | version "3.0.0" 87 | resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" 88 | integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== 89 | dependencies: 90 | event-target-shim "^5.0.0" 91 | 92 | abstract-logging@^2.0.1: 93 | version "2.0.1" 94 | resolved "https://registry.yarnpkg.com/abstract-logging/-/abstract-logging-2.0.1.tgz#6b0c371df212db7129b57d2e7fcf282b8bf1c839" 95 | integrity sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA== 96 | 97 | ajv-formats@^2.1.1: 98 | version "2.1.1" 99 | resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520" 100 | integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== 101 | dependencies: 102 | ajv "^8.0.0" 103 | 104 | ajv@^8.0.0, ajv@^8.10.0, ajv@^8.11.0: 105 | version "8.12.0" 106 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.12.0.tgz#d1a0527323e22f53562c567c00991577dfbe19d1" 107 | integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== 108 | dependencies: 109 | fast-deep-equal "^3.1.1" 110 | json-schema-traverse "^1.0.0" 111 | require-from-string "^2.0.2" 112 | uri-js "^4.2.2" 113 | 114 | anymatch@~3.1.2: 115 | version "3.1.3" 116 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" 117 | integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== 118 | dependencies: 119 | normalize-path "^3.0.0" 120 | picomatch "^2.0.4" 121 | 122 | archy@^1.0.0: 123 | version "1.0.0" 124 | resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" 125 | integrity sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw== 126 | 127 | atomic-sleep@^1.0.0: 128 | version "1.0.0" 129 | resolved "https://registry.yarnpkg.com/atomic-sleep/-/atomic-sleep-1.0.0.tgz#eb85b77a601fc932cfe432c5acd364a9e2c9075b" 130 | integrity sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ== 131 | 132 | avvio@^8.2.1: 133 | version "8.2.1" 134 | resolved "https://registry.yarnpkg.com/avvio/-/avvio-8.2.1.tgz#b5a482729847abb84d5aadce06511c04a0a62f82" 135 | integrity sha512-TAlMYvOuwGyLK3PfBb5WKBXZmXz2fVCgv23d6zZFdle/q3gPjmxBaeuC0pY0Dzs5PWMSgfqqEZkrye19GlDTgw== 136 | dependencies: 137 | archy "^1.0.0" 138 | debug "^4.0.0" 139 | fastq "^1.6.1" 140 | 141 | balanced-match@^1.0.0: 142 | version "1.0.2" 143 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" 144 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== 145 | 146 | base64-js@^1.3.1: 147 | version "1.5.1" 148 | resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" 149 | integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== 150 | 151 | binary-extensions@^2.0.0: 152 | version "2.2.0" 153 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" 154 | integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== 155 | 156 | brace-expansion@^1.1.7: 157 | version "1.1.11" 158 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 159 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 160 | dependencies: 161 | balanced-match "^1.0.0" 162 | concat-map "0.0.1" 163 | 164 | brace-expansion@^2.0.1: 165 | version "2.0.1" 166 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" 167 | integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== 168 | dependencies: 169 | balanced-match "^1.0.0" 170 | 171 | braces@~3.0.2: 172 | version "3.0.2" 173 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" 174 | integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== 175 | dependencies: 176 | fill-range "^7.0.1" 177 | 178 | buffer@^6.0.3: 179 | version "6.0.3" 180 | resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" 181 | integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== 182 | dependencies: 183 | base64-js "^1.3.1" 184 | ieee754 "^1.2.1" 185 | 186 | chokidar@^3.5.2: 187 | version "3.5.3" 188 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" 189 | integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== 190 | dependencies: 191 | anymatch "~3.1.2" 192 | braces "~3.0.2" 193 | glob-parent "~5.1.2" 194 | is-binary-path "~2.1.0" 195 | is-glob "~4.0.1" 196 | normalize-path "~3.0.0" 197 | readdirp "~3.6.0" 198 | optionalDependencies: 199 | fsevents "~2.3.2" 200 | 201 | concat-map@0.0.1: 202 | version "0.0.1" 203 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 204 | integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== 205 | 206 | content-disposition@^0.5.3: 207 | version "0.5.4" 208 | resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" 209 | integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== 210 | dependencies: 211 | safe-buffer "5.2.1" 212 | 213 | cookie@^0.5.0: 214 | version "0.5.0" 215 | resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" 216 | integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== 217 | 218 | debug@^3.2.7: 219 | version "3.2.7" 220 | resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" 221 | integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== 222 | dependencies: 223 | ms "^2.1.1" 224 | 225 | debug@^4.0.0: 226 | version "4.3.4" 227 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" 228 | integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== 229 | dependencies: 230 | ms "2.1.2" 231 | 232 | depd@2.0.0: 233 | version "2.0.0" 234 | resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" 235 | integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== 236 | 237 | escape-html@~1.0.3: 238 | version "1.0.3" 239 | resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" 240 | integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== 241 | 242 | event-target-shim@^5.0.0: 243 | version "5.0.1" 244 | resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" 245 | integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== 246 | 247 | events@^3.3.0: 248 | version "3.3.0" 249 | resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" 250 | integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== 251 | 252 | fast-content-type-parse@^1.0.0: 253 | version "1.0.0" 254 | resolved "https://registry.yarnpkg.com/fast-content-type-parse/-/fast-content-type-parse-1.0.0.tgz#cddce00df7d7efb3727d375a598e4904bfcb751c" 255 | integrity sha512-Xbc4XcysUXcsP5aHUU7Nq3OwvHq97C+WnbkeIefpeYLX+ryzFJlU6OStFJhs6Ol0LkUGpcK+wL0JwfM+FCU5IA== 256 | 257 | fast-decode-uri-component@^1.0.1: 258 | version "1.0.1" 259 | resolved "https://registry.yarnpkg.com/fast-decode-uri-component/-/fast-decode-uri-component-1.0.1.tgz#46f8b6c22b30ff7a81357d4f59abfae938202543" 260 | integrity sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg== 261 | 262 | fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: 263 | version "3.1.3" 264 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" 265 | integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== 266 | 267 | fast-json-stringify@^5.7.0: 268 | version "5.7.0" 269 | resolved "https://registry.yarnpkg.com/fast-json-stringify/-/fast-json-stringify-5.7.0.tgz#b0a04c848fdeb6ecd83440c71a4db35067023bed" 270 | integrity sha512-sBVPTgnAZseLu1Qgj6lUbQ0HfjFhZWXAmpZ5AaSGkyLh5gAXBga/uPJjQPHpDFjC9adWIpdOcCLSDTgrZ7snoQ== 271 | dependencies: 272 | "@fastify/deepmerge" "^1.0.0" 273 | ajv "^8.10.0" 274 | ajv-formats "^2.1.1" 275 | fast-deep-equal "^3.1.3" 276 | fast-uri "^2.1.0" 277 | rfdc "^1.2.0" 278 | 279 | fast-querystring@^1.0.0: 280 | version "1.1.2" 281 | resolved "https://registry.yarnpkg.com/fast-querystring/-/fast-querystring-1.1.2.tgz#a6d24937b4fc6f791b4ee31dcb6f53aeafb89f53" 282 | integrity sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg== 283 | dependencies: 284 | fast-decode-uri-component "^1.0.1" 285 | 286 | fast-redact@^3.1.1: 287 | version "3.2.0" 288 | resolved "https://registry.yarnpkg.com/fast-redact/-/fast-redact-3.2.0.tgz#b1e2d39bc731376d28bde844454fa23e26919987" 289 | integrity sha512-zaTadChr+NekyzallAMXATXLOR8MNx3zqpZ0MUF2aGf4EathnG0f32VLODNlY8IuGY3HoRO2L6/6fSzNsLaHIw== 290 | 291 | fast-uri@^2.0.0, fast-uri@^2.1.0: 292 | version "2.2.0" 293 | resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-2.2.0.tgz#519a0f849bef714aad10e9753d69d8f758f7445a" 294 | integrity sha512-cIusKBIt/R/oI6z/1nyfe2FvGKVTohVRfvkOhvx0nCEW+xf5NoCXjAHcWp93uOUBchzYcsvPlrapAdX1uW+YGg== 295 | 296 | fastify-plugin@^4.0.0: 297 | version "4.5.0" 298 | resolved "https://registry.yarnpkg.com/fastify-plugin/-/fastify-plugin-4.5.0.tgz#8b853923a0bba6ab6921bb8f35b81224e6988d91" 299 | integrity sha512-79ak0JxddO0utAXAQ5ccKhvs6vX2MGyHHMMsmZkBANrq3hXc1CHzvNPHOcvTsVMEPl5I+NT+RO4YKMGehOfSIg== 300 | 301 | fastify@^4.19.2: 302 | version "4.19.2" 303 | resolved "https://registry.yarnpkg.com/fastify/-/fastify-4.19.2.tgz#63a9ed0d865585aec60135128a300a93426c865e" 304 | integrity sha512-2unheeIRWFf9/Jjcz7djOpKuXCTzZjlyFfiBwKqpldkHMN2rfTLu/f9pYTdwlhzC9Cdj0S2H12zlug0Kd5uZ1w== 305 | dependencies: 306 | "@fastify/ajv-compiler" "^3.5.0" 307 | "@fastify/error" "^3.2.0" 308 | "@fastify/fast-json-stringify-compiler" "^4.3.0" 309 | abstract-logging "^2.0.1" 310 | avvio "^8.2.1" 311 | fast-content-type-parse "^1.0.0" 312 | fast-json-stringify "^5.7.0" 313 | find-my-way "^7.6.0" 314 | light-my-request "^5.9.1" 315 | pino "^8.12.0" 316 | process-warning "^2.2.0" 317 | proxy-addr "^2.0.7" 318 | rfdc "^1.3.0" 319 | secure-json-parse "^2.5.0" 320 | semver "^7.5.0" 321 | tiny-lru "^11.0.1" 322 | 323 | fastq@^1.6.1: 324 | version "1.15.0" 325 | resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" 326 | integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== 327 | dependencies: 328 | reusify "^1.0.4" 329 | 330 | fill-range@^7.0.1: 331 | version "7.0.1" 332 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" 333 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== 334 | dependencies: 335 | to-regex-range "^5.0.1" 336 | 337 | find-my-way@^7.6.0: 338 | version "7.6.2" 339 | resolved "https://registry.yarnpkg.com/find-my-way/-/find-my-way-7.6.2.tgz#4dd40200d3536aeef5c7342b10028e04cf79146c" 340 | integrity sha512-0OjHn1b1nCX3eVbm9ByeEHiscPYiHLfhei1wOUU9qffQkk98wE0Lo8VrVYfSGMgnSnDh86DxedduAnBf4nwUEw== 341 | dependencies: 342 | fast-deep-equal "^3.1.3" 343 | fast-querystring "^1.0.0" 344 | safe-regex2 "^2.0.0" 345 | 346 | forwarded@0.2.0: 347 | version "0.2.0" 348 | resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" 349 | integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== 350 | 351 | fs.realpath@^1.0.0: 352 | version "1.0.0" 353 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 354 | integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== 355 | 356 | fsevents@2.3.2, fsevents@~2.3.2: 357 | version "2.3.2" 358 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" 359 | integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== 360 | 361 | glob-parent@~5.1.2: 362 | version "5.1.2" 363 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" 364 | integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== 365 | dependencies: 366 | is-glob "^4.0.1" 367 | 368 | glob@^8.0.1: 369 | version "8.1.0" 370 | resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" 371 | integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== 372 | dependencies: 373 | fs.realpath "^1.0.0" 374 | inflight "^1.0.4" 375 | inherits "2" 376 | minimatch "^5.0.1" 377 | once "^1.3.0" 378 | 379 | has-flag@^3.0.0: 380 | version "3.0.0" 381 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 382 | integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== 383 | 384 | http-errors@2.0.0: 385 | version "2.0.0" 386 | resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" 387 | integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== 388 | dependencies: 389 | depd "2.0.0" 390 | inherits "2.0.4" 391 | setprototypeof "1.2.0" 392 | statuses "2.0.1" 393 | toidentifier "1.0.1" 394 | 395 | ieee754@^1.2.1: 396 | version "1.2.1" 397 | resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" 398 | integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== 399 | 400 | ignore-by-default@^1.0.1: 401 | version "1.0.1" 402 | resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" 403 | integrity sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA== 404 | 405 | inflight@^1.0.4: 406 | version "1.0.6" 407 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 408 | integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== 409 | dependencies: 410 | once "^1.3.0" 411 | wrappy "1" 412 | 413 | inherits@2, inherits@2.0.4: 414 | version "2.0.4" 415 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 416 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 417 | 418 | ipaddr.js@1.9.1: 419 | version "1.9.1" 420 | resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" 421 | integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== 422 | 423 | is-binary-path@~2.1.0: 424 | version "2.1.0" 425 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" 426 | integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== 427 | dependencies: 428 | binary-extensions "^2.0.0" 429 | 430 | is-extglob@^2.1.1: 431 | version "2.1.1" 432 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" 433 | integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== 434 | 435 | is-glob@^4.0.1, is-glob@~4.0.1: 436 | version "4.0.3" 437 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" 438 | integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== 439 | dependencies: 440 | is-extglob "^2.1.1" 441 | 442 | is-number@^7.0.0: 443 | version "7.0.0" 444 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" 445 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== 446 | 447 | json-schema-traverse@^1.0.0: 448 | version "1.0.0" 449 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" 450 | integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== 451 | 452 | light-my-request@^5.9.1: 453 | version "5.10.0" 454 | resolved "https://registry.yarnpkg.com/light-my-request/-/light-my-request-5.10.0.tgz#0a2bbc1d1bb573ed3b78143960920ecdc05bf157" 455 | integrity sha512-ZU2D9GmAcOUculTTdH9/zryej6n8TzT+fNGdNtm6SDp5MMMpHrJJkvAdE3c6d8d2chE9i+a//dS9CWZtisknqA== 456 | dependencies: 457 | cookie "^0.5.0" 458 | process-warning "^2.0.0" 459 | set-cookie-parser "^2.4.1" 460 | 461 | lru-cache@^6.0.0: 462 | version "6.0.0" 463 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" 464 | integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== 465 | dependencies: 466 | yallist "^4.0.0" 467 | 468 | mime@^3.0.0: 469 | version "3.0.0" 470 | resolved "https://registry.yarnpkg.com/mime/-/mime-3.0.0.tgz#b374550dca3a0c18443b0c950a6a58f1931cf7a7" 471 | integrity sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A== 472 | 473 | minimatch@^3.1.2: 474 | version "3.1.2" 475 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" 476 | integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== 477 | dependencies: 478 | brace-expansion "^1.1.7" 479 | 480 | minimatch@^5.0.1: 481 | version "5.1.6" 482 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" 483 | integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== 484 | dependencies: 485 | brace-expansion "^2.0.1" 486 | 487 | ms@2.1.2: 488 | version "2.1.2" 489 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" 490 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 491 | 492 | ms@^2.1.1: 493 | version "2.1.3" 494 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" 495 | integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== 496 | 497 | nodemon@^3.0.1: 498 | version "3.0.1" 499 | resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-3.0.1.tgz#affe822a2c5f21354466b2fc8ae83277d27dadc7" 500 | integrity sha512-g9AZ7HmkhQkqXkRc20w+ZfQ73cHLbE8hnPbtaFbFtCumZsjyMhKk9LajQ07U5Ux28lvFjZ5X7HvWR1xzU8jHVw== 501 | dependencies: 502 | chokidar "^3.5.2" 503 | debug "^3.2.7" 504 | ignore-by-default "^1.0.1" 505 | minimatch "^3.1.2" 506 | pstree.remy "^1.1.8" 507 | semver "^7.5.3" 508 | simple-update-notifier "^2.0.0" 509 | supports-color "^5.5.0" 510 | touch "^3.1.0" 511 | undefsafe "^2.0.5" 512 | 513 | nopt@~1.0.10: 514 | version "1.0.10" 515 | resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" 516 | integrity sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg== 517 | dependencies: 518 | abbrev "1" 519 | 520 | normalize-path@^3.0.0, normalize-path@~3.0.0: 521 | version "3.0.0" 522 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" 523 | integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== 524 | 525 | on-exit-leak-free@^2.1.0: 526 | version "2.1.0" 527 | resolved "https://registry.yarnpkg.com/on-exit-leak-free/-/on-exit-leak-free-2.1.0.tgz#5c703c968f7e7f851885f6459bf8a8a57edc9cc4" 528 | integrity sha512-VuCaZZAjReZ3vUwgOB8LxAosIurDiAW0s13rI1YwmaP++jvcxP77AWoQvenZebpCA2m8WC1/EosPYPMjnRAp/w== 529 | 530 | once@^1.3.0: 531 | version "1.4.0" 532 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 533 | integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== 534 | dependencies: 535 | wrappy "1" 536 | 537 | p-limit@^3.1.0: 538 | version "3.1.0" 539 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" 540 | integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== 541 | dependencies: 542 | yocto-queue "^0.1.0" 543 | 544 | picomatch@^2.0.4, picomatch@^2.2.1: 545 | version "2.3.1" 546 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" 547 | integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== 548 | 549 | pino-abstract-transport@v1.0.0: 550 | version "1.0.0" 551 | resolved "https://registry.yarnpkg.com/pino-abstract-transport/-/pino-abstract-transport-1.0.0.tgz#cc0d6955fffcadb91b7b49ef220a6cc111d48bb3" 552 | integrity sha512-c7vo5OpW4wIS42hUVcT5REsL8ZljsUfBjqV/e2sFxmFEFZiq1XLUp5EYLtuDH6PEHq9W1egWqRbnLUP5FuZmOA== 553 | dependencies: 554 | readable-stream "^4.0.0" 555 | split2 "^4.0.0" 556 | 557 | pino-std-serializers@^6.0.0: 558 | version "6.2.2" 559 | resolved "https://registry.yarnpkg.com/pino-std-serializers/-/pino-std-serializers-6.2.2.tgz#d9a9b5f2b9a402486a5fc4db0a737570a860aab3" 560 | integrity sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA== 561 | 562 | pino@^8.12.0: 563 | version "8.14.1" 564 | resolved "https://registry.yarnpkg.com/pino/-/pino-8.14.1.tgz#bb38dcda8b500dd90c1193b6c9171eb777a47ac8" 565 | integrity sha512-8LYNv7BKWXSfS+k6oEc6occy5La+q2sPwU3q2ljTX5AZk7v+5kND2o5W794FyRaqha6DJajmkNRsWtPpFyMUdw== 566 | dependencies: 567 | atomic-sleep "^1.0.0" 568 | fast-redact "^3.1.1" 569 | on-exit-leak-free "^2.1.0" 570 | pino-abstract-transport v1.0.0 571 | pino-std-serializers "^6.0.0" 572 | process-warning "^2.0.0" 573 | quick-format-unescaped "^4.0.3" 574 | real-require "^0.2.0" 575 | safe-stable-stringify "^2.3.1" 576 | sonic-boom "^3.1.0" 577 | thread-stream "^2.0.0" 578 | 579 | playwright-core@1.36.0: 580 | version "1.36.0" 581 | resolved "https://registry.yarnpkg.com/playwright-core/-/playwright-core-1.36.0.tgz#35d1ed5f364a31e58bc8f06688ab02d538b96eb6" 582 | integrity sha512-7RTr8P6YJPAqB+8j5ATGHqD6LvLLM39sYVNsslh78g8QeLcBs5750c6+msjrHUwwGt+kEbczBj1XB22WMwn+WA== 583 | 584 | process-warning@^2.0.0, process-warning@^2.2.0: 585 | version "2.2.0" 586 | resolved "https://registry.yarnpkg.com/process-warning/-/process-warning-2.2.0.tgz#008ec76b579820a8e5c35d81960525ca64feb626" 587 | integrity sha512-/1WZ8+VQjR6avWOgHeEPd7SDQmFQ1B5mC1eRXsCm5TarlNmx/wCsa5GEaxGm05BORRtyG/Ex/3xq3TuRvq57qg== 588 | 589 | process@^0.11.10: 590 | version "0.11.10" 591 | resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" 592 | integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== 593 | 594 | proxy-addr@^2.0.7: 595 | version "2.0.7" 596 | resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" 597 | integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== 598 | dependencies: 599 | forwarded "0.2.0" 600 | ipaddr.js "1.9.1" 601 | 602 | pstree.remy@^1.1.8: 603 | version "1.1.8" 604 | resolved "https://registry.yarnpkg.com/pstree.remy/-/pstree.remy-1.1.8.tgz#c242224f4a67c21f686839bbdb4ac282b8373d3a" 605 | integrity sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w== 606 | 607 | punycode@^2.1.0: 608 | version "2.3.0" 609 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" 610 | integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== 611 | 612 | quick-format-unescaped@^4.0.3: 613 | version "4.0.4" 614 | resolved "https://registry.yarnpkg.com/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz#93ef6dd8d3453cbc7970dd614fad4c5954d6b5a7" 615 | integrity sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg== 616 | 617 | readable-stream@^4.0.0: 618 | version "4.4.2" 619 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-4.4.2.tgz#e6aced27ad3b9d726d8308515b9a1b98dc1b9d13" 620 | integrity sha512-Lk/fICSyIhodxy1IDK2HazkeGjSmezAWX2egdtJnYhtzKEsBPJowlI6F6LPb5tqIQILrMbx22S5o3GuJavPusA== 621 | dependencies: 622 | abort-controller "^3.0.0" 623 | buffer "^6.0.3" 624 | events "^3.3.0" 625 | process "^0.11.10" 626 | string_decoder "^1.3.0" 627 | 628 | readdirp@~3.6.0: 629 | version "3.6.0" 630 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" 631 | integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== 632 | dependencies: 633 | picomatch "^2.2.1" 634 | 635 | real-require@^0.2.0: 636 | version "0.2.0" 637 | resolved "https://registry.yarnpkg.com/real-require/-/real-require-0.2.0.tgz#209632dea1810be2ae063a6ac084fee7e33fba78" 638 | integrity sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg== 639 | 640 | require-from-string@^2.0.2: 641 | version "2.0.2" 642 | resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" 643 | integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== 644 | 645 | ret@~0.2.0: 646 | version "0.2.2" 647 | resolved "https://registry.yarnpkg.com/ret/-/ret-0.2.2.tgz#b6861782a1f4762dce43402a71eb7a283f44573c" 648 | integrity sha512-M0b3YWQs7R3Z917WRQy1HHA7Ba7D8hvZg6UE5mLykJxQVE2ju0IXbGlaHPPlkY+WN7wFP+wUMXmBFA0aV6vYGQ== 649 | 650 | reusify@^1.0.4: 651 | version "1.0.4" 652 | resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" 653 | integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== 654 | 655 | rfdc@^1.2.0, rfdc@^1.3.0: 656 | version "1.3.0" 657 | resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" 658 | integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== 659 | 660 | safe-buffer@5.2.1, safe-buffer@~5.2.0: 661 | version "5.2.1" 662 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" 663 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== 664 | 665 | safe-regex2@^2.0.0: 666 | version "2.0.0" 667 | resolved "https://registry.yarnpkg.com/safe-regex2/-/safe-regex2-2.0.0.tgz#b287524c397c7a2994470367e0185e1916b1f5b9" 668 | integrity sha512-PaUSFsUaNNuKwkBijoAPHAK6/eM6VirvyPWlZ7BAQy4D+hCvh4B6lIG+nPdhbFfIbP+gTGBcrdsOaUs0F+ZBOQ== 669 | dependencies: 670 | ret "~0.2.0" 671 | 672 | safe-stable-stringify@^2.3.1: 673 | version "2.4.3" 674 | resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz#138c84b6f6edb3db5f8ef3ef7115b8f55ccbf886" 675 | integrity sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g== 676 | 677 | secure-json-parse@^2.5.0: 678 | version "2.7.0" 679 | resolved "https://registry.yarnpkg.com/secure-json-parse/-/secure-json-parse-2.7.0.tgz#5a5f9cd6ae47df23dba3151edd06855d47e09862" 680 | integrity sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw== 681 | 682 | semver@^7.5.0, semver@^7.5.3: 683 | version "7.5.4" 684 | resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" 685 | integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== 686 | dependencies: 687 | lru-cache "^6.0.0" 688 | 689 | set-cookie-parser@^2.4.1: 690 | version "2.6.0" 691 | resolved "https://registry.yarnpkg.com/set-cookie-parser/-/set-cookie-parser-2.6.0.tgz#131921e50f62ff1a66a461d7d62d7b21d5d15a51" 692 | integrity sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ== 693 | 694 | setprototypeof@1.2.0: 695 | version "1.2.0" 696 | resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" 697 | integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== 698 | 699 | simple-update-notifier@^2.0.0: 700 | version "2.0.0" 701 | resolved "https://registry.yarnpkg.com/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz#d70b92bdab7d6d90dfd73931195a30b6e3d7cebb" 702 | integrity sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w== 703 | dependencies: 704 | semver "^7.5.3" 705 | 706 | sonic-boom@^3.1.0: 707 | version "3.3.0" 708 | resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-3.3.0.tgz#cffab6dafee3b2bcb88d08d589394198bee1838c" 709 | integrity sha512-LYxp34KlZ1a2Jb8ZQgFCK3niIHzibdwtwNUWKg0qQRzsDoJ3Gfgkf8KdBTFU3SkejDEIlWwnSnpVdOZIhFMl/g== 710 | dependencies: 711 | atomic-sleep "^1.0.0" 712 | 713 | split2@^4.0.0: 714 | version "4.2.0" 715 | resolved "https://registry.yarnpkg.com/split2/-/split2-4.2.0.tgz#c9c5920904d148bab0b9f67145f245a86aadbfa4" 716 | integrity sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg== 717 | 718 | statuses@2.0.1: 719 | version "2.0.1" 720 | resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" 721 | integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== 722 | 723 | string_decoder@^1.3.0: 724 | version "1.3.0" 725 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" 726 | integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== 727 | dependencies: 728 | safe-buffer "~5.2.0" 729 | 730 | supports-color@^5.5.0: 731 | version "5.5.0" 732 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" 733 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== 734 | dependencies: 735 | has-flag "^3.0.0" 736 | 737 | thread-stream@^2.0.0: 738 | version "2.3.0" 739 | resolved "https://registry.yarnpkg.com/thread-stream/-/thread-stream-2.3.0.tgz#4fc07fb39eff32ae7bad803cb7dd9598349fed33" 740 | integrity sha512-kaDqm1DET9pp3NXwR8382WHbnpXnRkN9xGN9dQt3B2+dmXiW8X1SOwmFOxAErEQ47ObhZ96J6yhZNXuyCOL7KA== 741 | dependencies: 742 | real-require "^0.2.0" 743 | 744 | tiny-lru@^11.0.1: 745 | version "11.0.1" 746 | resolved "https://registry.yarnpkg.com/tiny-lru/-/tiny-lru-11.0.1.tgz#629d6ddd88bd03c0929722680167f1feadf576f2" 747 | integrity sha512-iNgFugVuQgBKrqeO/mpiTTgmBsTP0WL6yeuLfLs/Ctf0pI/ixGqIRm8sDCwMcXGe9WWvt2sGXI5mNqZbValmJg== 748 | 749 | to-regex-range@^5.0.1: 750 | version "5.0.1" 751 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" 752 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== 753 | dependencies: 754 | is-number "^7.0.0" 755 | 756 | toidentifier@1.0.1: 757 | version "1.0.1" 758 | resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" 759 | integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== 760 | 761 | touch@^3.1.0: 762 | version "3.1.0" 763 | resolved "https://registry.yarnpkg.com/touch/-/touch-3.1.0.tgz#fe365f5f75ec9ed4e56825e0bb76d24ab74af83b" 764 | integrity sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA== 765 | dependencies: 766 | nopt "~1.0.10" 767 | 768 | undefsafe@^2.0.5: 769 | version "2.0.5" 770 | resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.5.tgz#38733b9327bdcd226db889fb723a6efd162e6e2c" 771 | integrity sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA== 772 | 773 | uri-js@^4.2.2: 774 | version "4.4.1" 775 | resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" 776 | integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== 777 | dependencies: 778 | punycode "^2.1.0" 779 | 780 | wrappy@1: 781 | version "1.0.2" 782 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 783 | integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== 784 | 785 | yallist@^4.0.0: 786 | version "4.0.0" 787 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" 788 | integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== 789 | 790 | yocto-queue@^0.1.0: 791 | version "0.1.0" 792 | resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" 793 | integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== 794 | --------------------------------------------------------------------------------