├── env.bat ├── favicon.ico ├── public ├── fonts │ └── HKGrotesk-Bold.otf ├── images │ ├── favicon-16x16.png │ └── favicon-32x32.png ├── styles │ ├── base.css │ └── index.css └── script.js ├── .gitignore ├── views ├── layouts │ └── main.handlebars ├── index.handlebars └── article-card-template.handlebars ├── package.json ├── README.md ├── src └── server.js ├── pnpm-lock.yaml └── shrinkwrap.yaml /env.bat: -------------------------------------------------------------------------------- 1 | SET PORT=3000 2 | 3 | : for bash do the following 4 | : 5 | : export PORT=3000 -------------------------------------------------------------------------------- /favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OmarShehata/twitter-substack-proxy/HEAD/favicon.ico -------------------------------------------------------------------------------- /public/fonts/HKGrotesk-Bold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OmarShehata/twitter-substack-proxy/HEAD/public/fonts/HKGrotesk-Bold.otf -------------------------------------------------------------------------------- /public/images/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OmarShehata/twitter-substack-proxy/HEAD/public/images/favicon-16x16.png -------------------------------------------------------------------------------- /public/images/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OmarShehata/twitter-substack-proxy/HEAD/public/images/favicon-32x32.png -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .glitchdotcom.json 2 | .node-gyp 3 | node_modules 4 | .data 5 | .env 6 | public/articles/ 7 | # Local Netlify folder 8 | .netlify 9 | -------------------------------------------------------------------------------- /views/layouts/main.handlebars: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | substack proxy 9 | 10 | 11 |
12 | {{{body}}} 13 |
14 | 15 | 16 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "substack-proxy", 3 | "version": "0.0.0", 4 | "engines": { 5 | "node": ">=16.0" 6 | }, 7 | "scripts": { 8 | "start": "node src/server.js", 9 | "watch": "nodemon --ignore public/ src/server.js", 10 | "deploy": "git push glitch main --force" 11 | }, 12 | "devDependencies": { 13 | "nodemon": "^3.1.0" 14 | }, 15 | "dependencies": { 16 | "crypto": "^1.0.1", 17 | "express": "^4.18.2", 18 | "express-handlebars": "^7.1.2", 19 | "jsdom": "^24.1.0", 20 | "node-fetch": "^3.3.2", 21 | "url-slug": "^4.0.1" 22 | }, 23 | "type": "module" 24 | } 25 | -------------------------------------------------------------------------------- /public/styles/base.css: -------------------------------------------------------------------------------- 1 | /* 2 | https://colorhunt.co/palette/fefaf6eadbc8dac0a3102c57 3 | */ 4 | :root { 5 | --color-bg: #FAF9F6; 6 | --color-primary: #3c3c3c; 7 | --color-muted: #a7a7a7; 8 | } 9 | 10 | @font-face { 11 | font-family: HK Grotesk; 12 | font-weight: bold; 13 | src: url("../fonts/HKGrotesk-Bold.otf") 14 | format("opentype"); 15 | } 16 | 17 | html { 18 | font-family: HK Grotesk; 19 | -webkit-font-smoothing: antialiased; 20 | -moz-osx-font-smoothing: grayscale; 21 | color: var(--color-primary); 22 | background: var(--color-bg); 23 | font-size: 18px; 24 | } 25 | 26 | .content { 27 | margin:auto; 28 | max-width: 700px; 29 | padding: 30px; 30 | } 31 | 32 | @media only screen and (max-width : 900px) { 33 | .content { 34 | padding: 0px; 35 | } 36 | } 37 | 38 | .muted-text { 39 | color: var(--color-muted); 40 | } 41 | 42 | a { 43 | color: var(--color-muted); 44 | } 45 | 46 | .three-dots { 47 | text-align: center; 48 | margin-top: 50px; 49 | margin-bottom: 50px; 50 | } 51 | 52 | .three-dots span { 53 | width: 8px; 54 | height: 8px; 55 | border-radius: 50%; 56 | background: var(--color-muted); 57 | display: inline-block; 58 | margin: 0 15px; 59 | } 60 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # twitter substack proxy 2 | 3 | see writeup here: https://omarshehata.substack.com/p/fighting-twitters-censorship-of-substack 4 | 5 | Twitter artificially limits the reach of substack links. They do not display the preview card like other links to, and tweets get limited reach if they link specifically to substack. This is a workaround. 6 | 7 | deployed at: 8 | 9 | ## http://substack-proxy.glitch.me/ 10 | 11 | project page on glitch: https://glitch.com/~substack-proxy 12 | 13 | **before / after** 14 | 15 | ![before_after](https://github.com/OmarShehata/twitter-substack-proxy/assets/1711126/07766d92-96c6-4b43-9980-1d81cfe2b3d3) 16 | 17 | Example page source (with `?noredirect` param so you can view source). It will appear blank, because it only has meta tags and a JS snippet to redirect to the substack article: 18 | 19 | https://substack-proxy.glitch.me/articles/omarshehata-substack-com-p-my-favorite-1980s-canadian-tv-show.html?noredirect 20 | 21 | ### Alternatives 22 | 23 | - https://substackfwd.xyz/?url= 24 | 25 | ### Setup 26 | 27 | Clone this repo. Install node/pnpm (https://pnpm.io/installation). 28 | 29 | 1. `pnpm install` to install node dependencies 30 | 1. Run `env.bat` to set environmant variables 31 | 1. `pnpm watch` to run the server with auto-reload 32 | 33 | `src/server.js` is the server code. `views/index.handlebars` is the main page. 34 | 35 | ### How it works 36 | 37 | This is an extremely low-tech thing, you can even do it yourself by hand! 38 | 39 | 1. [This is the template](views/article-card-template.handlebars) that it generates 40 | 2. You can copy this info from the substack HTML page (or fill it yourself with whatever you need it to say) 41 | 3. You can put this HTML page anywhere that is publicly accessible, then share that on twitter, and it will look like a substack article, and redirect to it. 42 | 43 | Even if they banned this glitch app, anyone can host this on their own website, or on any free static host like glitch/codepen/replit etc. 44 | 45 | If my app ever breaks or catches fire and burns, the URLs it generates are derived from the original URLs, so no data is lost (a quick google search will find the original article). 46 | 47 | I debated preserving the original URL as-is by base64-encoding it, but that sacrifices readability. 48 | 49 | -------------------------------------------------------------------------------- /views/index.handlebars: -------------------------------------------------------------------------------- 1 | 2 |
3 | The host for substack-proxy (glitch.com) has shut down. The old URL will redirect until end of 2026. Read more. 4 |
5 | 6 |
7 | 8 |
9 |

twitter substack proxy

10 |
11 | 12 | 13 |

14 | Paste in your substack link: 15 |

16 | 17 | 18 | 19 |
20 | 26 | 27 |
28 | 29 | 32 | 33 |
34 |     
35 | 36 | 37 | 38 | 39 | 40 | 41 | 63 | 64 |
65 | 66 | -------------------------------------------------------------------------------- /views/article-card-template.handlebars: -------------------------------------------------------------------------------- 1 | 2 | {{!-- include all the substack meta tags to mimic the display card --}} 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 28 | 29 | {{#if manualRedirect}} 30 | 80 |
81 | 87 |
88 | {{/if}} 89 | 90 | -------------------------------------------------------------------------------- /public/script.js: -------------------------------------------------------------------------------- 1 | window.onload = function() { 2 | const outputElement = document.querySelector("#output") 3 | const inputElement = document.querySelector("#substack_url") 4 | const copyBtn = document.querySelector("#copy-btn") 5 | const manualRedirectCheckbox = document.querySelector("#redirect-checkbox") 6 | let timeoutid = null 7 | const DELAY_TIME_MS_GLOBAL = 400 8 | 9 | const updatedInput = async (DELAY_TIME_MS) => { 10 | if (inputElement.value == '') { 11 | document.querySelector("#you-can-now-text").style.display = 'block' 12 | outputElement.innerHTML = '' 13 | copyBtn.style.display = 'none' 14 | return 15 | } 16 | 17 | // automatically submit 400ms after user starts typing 18 | // to avoid making requests one very key stroke 19 | // clear last pending request 20 | outputElement.innerHTML = 'waiting (for you to finish typing)...' 21 | 22 | if (timeoutid) { 23 | clearTimeout(timeoutid) 24 | timeoutid = null 25 | } 26 | 27 | timeoutid = setTimeout(async () => { 28 | outputElement.innerHTML = 'generating url...' 29 | 30 | try { 31 | // generate the url 32 | const url = encodeURIComponent(inputElement.value) 33 | console.log("Generating url for", inputElement.value) 34 | 35 | let response 36 | if (manualRedirectCheckbox.checked) { 37 | response = await fetch(`/substack-proxy/generate-url/${url}/true`); 38 | } else { 39 | response = await fetch(`/substack-proxy/generate-url/${url}`); 40 | } 41 | 42 | const data = await response.json(); 43 | console.log("response: ", data) 44 | if (data.done == false) { 45 | throw Error(data.error) 46 | } 47 | 48 | // display the result 49 | document.querySelector("#you-can-now-text").style.display = 'block' 50 | copyBtn.style.display = 'block' 51 | outputElement.innerHTML = `${window.location.origin}/substack-proxy/articles/${data.hash}.html` 52 | } catch (e) { 53 | console.error(e) 54 | outputElement.innerHTML = 'Error: ' + String(e) 55 | } 56 | }, DELAY_TIME_MS) 57 | } 58 | 59 | inputElement.oninput = () => { updatedInput(DELAY_TIME_MS_GLOBAL) } 60 | manualRedirectCheckbox.oninput = () => { updatedInput(0) } 61 | 62 | copyBtn.onclick = () => { 63 | navigator.clipboard.writeText(outputElement.innerHTML) 64 | copyBtn.innerHTML = '✅ Copied' 65 | 66 | if (window.timeoutid) { 67 | clearTimeout(window.timeoutid) 68 | delete window.timeoutid 69 | } 70 | window.timeoutid = setTimeout(() => { 71 | copyBtn.innerHTML = 'Copy' 72 | }, 1000) 73 | } 74 | 75 | } 76 | 77 | 78 | async function getSubstackMetaTags(url) { 79 | try { 80 | const articleRequest = await fetch(url, {mode: 'no-cors'}); 81 | console.log(articleRequest) 82 | const htmlPage = await articleRequest.text(); 83 | 84 | console.log(htmlPage) 85 | } catch (e) { 86 | console.log(e) 87 | } 88 | 89 | } 90 | -------------------------------------------------------------------------------- /public/styles/index.css: -------------------------------------------------------------------------------- 1 | #title-container { 2 | /*text-align: center;*/ 3 | display: flex; 4 | flex-direction: column; 5 | align-items: center; 6 | } 7 | 8 | #title { 9 | margin-bottom: 0px; 10 | font-size: 64px; 11 | } 12 | 13 | @media only screen and (max-width: 900px) { 14 | #title { 15 | font-size: 32px; 16 | } 17 | } 18 | 19 | .muted { 20 | color: var(--color-muted); 21 | } 22 | 23 | #subtitle { 24 | margin-top: 0px; 25 | color: var(--color-muted); 26 | } 27 | 28 | 29 | pre { 30 | white-space: pre-wrap; 31 | max-width: 600px; 32 | word-wrap: break-word; 33 | } 34 | 35 | #substack_url { 36 | width: 100%; 37 | height: 25px; 38 | font-size: 20px; 39 | border-radius: 5px; 40 | } 41 | #footer { 42 | color: var(--color-muted); 43 | 44 | max-width: 600px; 45 | margin-top: 200px; 46 | margin-bottom: 200px; 47 | } 48 | 49 | 50 | /* 51 | github button styling: 52 | https://getcssscan.com/css-buttons-examples 53 | */ 54 | .button-4 { 55 | appearance: none; 56 | background-color: #FAFBFC; 57 | border: 1px solid rgba(27, 31, 35, 0.15); 58 | border-radius: 6px; 59 | box-shadow: rgba(27, 31, 35, 0.04) 0 1px 0, rgba(255, 255, 255, 0.25) 0 1px 0 inset; 60 | box-sizing: border-box; 61 | color: #24292E; 62 | cursor: pointer; 63 | display: inline-block; 64 | font-family: -apple-system, system-ui, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; 65 | font-size: 14px; 66 | font-weight: 500; 67 | line-height: 20px; 68 | list-style: none; 69 | padding: 6px 16px; 70 | position: relative; 71 | transition: background-color 0.2s cubic-bezier(0.3, 0, 0.5, 1); 72 | user-select: none; 73 | -webkit-user-select: none; 74 | touch-action: manipulation; 75 | vertical-align: middle; 76 | white-space: nowrap; 77 | word-wrap: break-word; 78 | } 79 | 80 | .button-4:hover { 81 | background-color: #F3F4F6; 82 | text-decoration: none; 83 | transition-duration: 0.1s; 84 | } 85 | 86 | .button-4:disabled { 87 | background-color: #FAFBFC; 88 | border-color: rgba(27, 31, 35, 0.15); 89 | color: #959DA5; 90 | cursor: default; 91 | } 92 | 93 | .button-4:active { 94 | background-color: #EDEFF2; 95 | box-shadow: rgba(225, 228, 232, 0.2) 0 1px 0 inset; 96 | transition: none 0s; 97 | } 98 | 99 | .button-4:focus { 100 | outline: 1px transparent; 101 | } 102 | 103 | .button-4:before { 104 | display: none; 105 | } 106 | 107 | .button-4:-webkit-details-marker { 108 | display: none; 109 | } 110 | 111 | #redirect-mode-container { 112 | margin-top: 20px; 113 | color: var(--color-muted) 114 | } 115 | 116 | input[type="checkbox"] { 117 | /* Your CSS styles here */ 118 | width: 15px; 119 | height: 15px; 120 | background-color: yellow; 121 | } 122 | 123 | 124 | #redirect-banner { 125 | background-color: #dc3545; /* Bootstrap red */ 126 | color: white; 127 | text-align: center; 128 | padding: 12px 20px; 129 | font-weight: bold; 130 | position: sticky; 131 | top: 0; 132 | z-index: 1000; 133 | width: 100%; 134 | box-sizing: border-box; 135 | } 136 | 137 | /* Optional: Add some styling for links in the banner */ 138 | #redirect-banner a { 139 | color: white; 140 | text-decoration: underline; 141 | } -------------------------------------------------------------------------------- /src/server.js: -------------------------------------------------------------------------------- 1 | import express from 'express' 2 | import { engine, create } from 'express-handlebars'; 3 | import crypto from 'crypto' 4 | import { dirname } from 'path'; 5 | import path from 'path' 6 | import * as fs from 'fs'; 7 | import { fileURLToPath } from 'url'; 8 | import { JSDOM } from 'jsdom' 9 | import { error } from 'console'; 10 | import fetch from 'node-fetch'; 11 | import * as urlSlug from 'url-slug' 12 | import * as UrlUtil from 'url'; 13 | 14 | const __dirname = dirname(fileURLToPath(import.meta.url)); 15 | // TODO: how to ensure this doesn't get overwritten between deploys? 16 | const URLS_DIRECTORY = path.join(__dirname, '../public/articles') 17 | 18 | const expresshandlebars = create(); 19 | 20 | async function run() { 21 | fs.mkdirSync(URLS_DIRECTORY, { recursive: true }); 22 | 23 | const app = express(); 24 | app.engine('handlebars', engine({ 25 | helpers: { 26 | json: JSON.stringify 27 | } 28 | })); 29 | app.use(express.static('public')); 30 | app.set('view engine', 'handlebars'); 31 | app.set('views', './views'); 32 | app.use(express.json()); 33 | 34 | ///// Pages 35 | app.get("/", async function (request, response) { 36 | response.render('index', { average:0 }) 37 | }); 38 | /* 39 | app.get("/generate-url/:url/:manualRedirect?", async function (request, response) { 40 | const url = request.params.url 41 | const manualRedirect = request.params.manualRedirect === 'true' 42 | */ 43 | app.get("/generate-url/*", async function (request, response) { 44 | let url = request.params[0]; 45 | let manualRedirect = false; 46 | if (url.startsWith('https:/') && !url.startsWith('https://')) { 47 | url = url.replace('https:/', 'https://'); 48 | } 49 | 50 | if (url.endsWith('/true')) { 51 | url = url.slice(0, -5); // Remove '/true' 52 | manualRedirect = true; 53 | } 54 | 55 | // remove url params 56 | const parsedUrl = UrlUtil.parse(url) 57 | parsedUrl.search = '' 58 | if (manualRedirect) { 59 | parsedUrl.search = 'manualredirect' 60 | } 61 | 62 | const finalUrl = UrlUtil.format(parsedUrl) 63 | // const md5 = crypto.createHash('md5') 64 | // const hash = md5.update(url).digest('hex') 65 | // const hash = btoa(decodeURIComponent(url)) 66 | const hash = urlSlug.convert(finalUrl.replace("https://", "")) 67 | 68 | const filepath = `${URLS_DIRECTORY}/${hash}.html` 69 | 70 | if (fs.existsSync(filepath)) { 71 | response.json({ done: true, cached: true, hash }) 72 | return 73 | } 74 | 75 | // fetch substack page, extra meta tags 76 | let htmlPage 77 | try { 78 | const articleRequest = await fetch(finalUrl); 79 | htmlPage = await articleRequest.text(); 80 | } catch (e) { 81 | response.json({ done: false, error: String(e) }) 82 | return 83 | } 84 | 85 | const dom = new JSDOM(htmlPage); 86 | function query(str) { 87 | return dom.window.document.querySelector(str).content 88 | } 89 | const title = query(`meta[property="og:title"]`) 90 | const description = query(`meta[property="og:description"]`) 91 | const image = query(`meta[name="twitter:image"]`) 92 | // create an html page to mimic those tags 93 | const templateSource = fs.readFileSync('./views/article-card-template.handlebars', 'utf-8') 94 | const generatedtemplate = expresshandlebars.handlebars.compile(templateSource); 95 | console.log({ filepath }) 96 | fs.writeFileSync(filepath, generatedtemplate({ title, description, image, url: finalUrl, manualRedirect }), 'utf-8'); 97 | response.json({ done: true,hash }) 98 | }); 99 | 100 | // Create parent app and mount substack app 101 | const parentApp = express(); 102 | parentApp.use('/substack-proxy', app); 103 | parentApp.use('/', app); // Keep root access working too 104 | 105 | const listener = parentApp.listen(process.env.PORT, function () { 106 | console.log('Your app is listening on port ' + listener.address().port); 107 | }); 108 | 109 | } 110 | 111 | run() 112 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: 5.4 2 | 3 | specifiers: 4 | crypto: ^1.0.1 5 | express: ^4.18.2 6 | express-handlebars: ^7.1.2 7 | jsdom: ^24.1.0 8 | node-fetch: ^3.3.2 9 | nodemon: ^3.1.0 10 | url-slug: ^4.0.1 11 | 12 | dependencies: 13 | crypto: 1.0.1 14 | express: 4.19.2 15 | express-handlebars: 7.1.2 16 | jsdom: 24.1.0 17 | node-fetch: 3.3.2 18 | url-slug: 4.0.1 19 | 20 | devDependencies: 21 | nodemon: 3.1.0 22 | 23 | packages: 24 | 25 | /@isaacs/cliui/8.0.2: 26 | resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} 27 | engines: {node: '>=12'} 28 | dependencies: 29 | string-width: 5.1.2 30 | string-width-cjs: /string-width/4.2.3 31 | strip-ansi: 7.1.0 32 | strip-ansi-cjs: /strip-ansi/6.0.1 33 | wrap-ansi: 8.1.0 34 | wrap-ansi-cjs: /wrap-ansi/7.0.0 35 | dev: false 36 | 37 | /@pkgjs/parseargs/0.11.0: 38 | resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} 39 | engines: {node: '>=14'} 40 | requiresBuild: true 41 | dev: false 42 | optional: true 43 | 44 | /abbrev/1.1.1: 45 | resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} 46 | dev: true 47 | 48 | /accepts/1.3.8: 49 | resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} 50 | engines: {node: '>= 0.6'} 51 | dependencies: 52 | mime-types: 2.1.35 53 | negotiator: 0.6.3 54 | dev: false 55 | 56 | /agent-base/7.1.1: 57 | resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==} 58 | engines: {node: '>= 14'} 59 | dependencies: 60 | debug: 4.3.4 61 | transitivePeerDependencies: 62 | - supports-color 63 | dev: false 64 | 65 | /ansi-regex/5.0.1: 66 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 67 | engines: {node: '>=8'} 68 | dev: false 69 | 70 | /ansi-regex/6.0.1: 71 | resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} 72 | engines: {node: '>=12'} 73 | dev: false 74 | 75 | /ansi-styles/4.3.0: 76 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 77 | engines: {node: '>=8'} 78 | dependencies: 79 | color-convert: 2.0.1 80 | dev: false 81 | 82 | /ansi-styles/6.2.1: 83 | resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} 84 | engines: {node: '>=12'} 85 | dev: false 86 | 87 | /anymatch/3.1.3: 88 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} 89 | engines: {node: '>= 8'} 90 | dependencies: 91 | normalize-path: 3.0.0 92 | picomatch: 2.3.1 93 | dev: true 94 | 95 | /array-flatten/1.1.1: 96 | resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} 97 | dev: false 98 | 99 | /asynckit/0.4.0: 100 | resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} 101 | dev: false 102 | 103 | /balanced-match/1.0.2: 104 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 105 | 106 | /binary-extensions/2.3.0: 107 | resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} 108 | engines: {node: '>=8'} 109 | dev: true 110 | 111 | /body-parser/1.20.2: 112 | resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==} 113 | engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} 114 | dependencies: 115 | bytes: 3.1.2 116 | content-type: 1.0.5 117 | debug: 2.6.9 118 | depd: 2.0.0 119 | destroy: 1.2.0 120 | http-errors: 2.0.0 121 | iconv-lite: 0.4.24 122 | on-finished: 2.4.1 123 | qs: 6.11.0 124 | raw-body: 2.5.2 125 | type-is: 1.6.18 126 | unpipe: 1.0.0 127 | transitivePeerDependencies: 128 | - supports-color 129 | dev: false 130 | 131 | /brace-expansion/1.1.11: 132 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 133 | dependencies: 134 | balanced-match: 1.0.2 135 | concat-map: 0.0.1 136 | dev: true 137 | 138 | /brace-expansion/2.0.1: 139 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} 140 | dependencies: 141 | balanced-match: 1.0.2 142 | dev: false 143 | 144 | /braces/3.0.2: 145 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} 146 | engines: {node: '>=8'} 147 | dependencies: 148 | fill-range: 7.0.1 149 | dev: true 150 | 151 | /bytes/3.1.2: 152 | resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} 153 | engines: {node: '>= 0.8'} 154 | dev: false 155 | 156 | /call-bind/1.0.7: 157 | resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} 158 | engines: {node: '>= 0.4'} 159 | dependencies: 160 | es-define-property: 1.0.0 161 | es-errors: 1.3.0 162 | function-bind: 1.1.2 163 | get-intrinsic: 1.2.4 164 | set-function-length: 1.2.2 165 | dev: false 166 | 167 | /chokidar/3.6.0: 168 | resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} 169 | engines: {node: '>= 8.10.0'} 170 | dependencies: 171 | anymatch: 3.1.3 172 | braces: 3.0.2 173 | glob-parent: 5.1.2 174 | is-binary-path: 2.1.0 175 | is-glob: 4.0.3 176 | normalize-path: 3.0.0 177 | readdirp: 3.6.0 178 | optionalDependencies: 179 | fsevents: 2.3.3 180 | dev: true 181 | 182 | /color-convert/2.0.1: 183 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 184 | engines: {node: '>=7.0.0'} 185 | dependencies: 186 | color-name: 1.1.4 187 | dev: false 188 | 189 | /color-name/1.1.4: 190 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 191 | dev: false 192 | 193 | /combined-stream/1.0.8: 194 | resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} 195 | engines: {node: '>= 0.8'} 196 | dependencies: 197 | delayed-stream: 1.0.0 198 | dev: false 199 | 200 | /concat-map/0.0.1: 201 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 202 | dev: true 203 | 204 | /content-disposition/0.5.4: 205 | resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} 206 | engines: {node: '>= 0.6'} 207 | dependencies: 208 | safe-buffer: 5.2.1 209 | dev: false 210 | 211 | /content-type/1.0.5: 212 | resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} 213 | engines: {node: '>= 0.6'} 214 | dev: false 215 | 216 | /cookie-signature/1.0.6: 217 | resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} 218 | dev: false 219 | 220 | /cookie/0.6.0: 221 | resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} 222 | engines: {node: '>= 0.6'} 223 | dev: false 224 | 225 | /cross-spawn/7.0.3: 226 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} 227 | engines: {node: '>= 8'} 228 | dependencies: 229 | path-key: 3.1.1 230 | shebang-command: 2.0.0 231 | which: 2.0.2 232 | dev: false 233 | 234 | /crypto/1.0.1: 235 | resolution: {integrity: sha512-VxBKmeNcqQdiUQUW2Tzq0t377b54N2bMtXO/qiLa+6eRRmmC4qT3D4OnTGoT/U6O9aklQ/jTwbOtRMTTY8G0Ig==} 236 | deprecated: This package is no longer supported. It's now a built-in Node module. If you've depended on crypto, you should switch to the one that's built-in. 237 | dev: false 238 | 239 | /cssstyle/4.0.1: 240 | resolution: {integrity: sha512-8ZYiJ3A/3OkDd093CBT/0UKDWry7ak4BdPTFP2+QEP7cmhouyq/Up709ASSj2cK02BbZiMgk7kYjZNS4QP5qrQ==} 241 | engines: {node: '>=18'} 242 | dependencies: 243 | rrweb-cssom: 0.6.0 244 | dev: false 245 | 246 | /data-uri-to-buffer/4.0.1: 247 | resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==} 248 | engines: {node: '>= 12'} 249 | dev: false 250 | 251 | /data-urls/5.0.0: 252 | resolution: {integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==} 253 | engines: {node: '>=18'} 254 | dependencies: 255 | whatwg-mimetype: 4.0.0 256 | whatwg-url: 14.0.0 257 | dev: false 258 | 259 | /debug/2.6.9: 260 | resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} 261 | peerDependencies: 262 | supports-color: '*' 263 | peerDependenciesMeta: 264 | supports-color: 265 | optional: true 266 | dependencies: 267 | ms: 2.0.0 268 | dev: false 269 | 270 | /debug/4.3.4: 271 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} 272 | engines: {node: '>=6.0'} 273 | peerDependencies: 274 | supports-color: '*' 275 | peerDependenciesMeta: 276 | supports-color: 277 | optional: true 278 | dependencies: 279 | ms: 2.1.2 280 | dev: false 281 | 282 | /debug/4.3.4_supports-color@5.5.0: 283 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} 284 | engines: {node: '>=6.0'} 285 | peerDependencies: 286 | supports-color: '*' 287 | peerDependenciesMeta: 288 | supports-color: 289 | optional: true 290 | dependencies: 291 | ms: 2.1.2 292 | supports-color: 5.5.0 293 | dev: true 294 | 295 | /decimal.js/10.4.3: 296 | resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} 297 | dev: false 298 | 299 | /define-data-property/1.1.4: 300 | resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} 301 | engines: {node: '>= 0.4'} 302 | dependencies: 303 | es-define-property: 1.0.0 304 | es-errors: 1.3.0 305 | gopd: 1.0.1 306 | dev: false 307 | 308 | /delayed-stream/1.0.0: 309 | resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} 310 | engines: {node: '>=0.4.0'} 311 | dev: false 312 | 313 | /depd/2.0.0: 314 | resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} 315 | engines: {node: '>= 0.8'} 316 | dev: false 317 | 318 | /destroy/1.2.0: 319 | resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} 320 | engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} 321 | dev: false 322 | 323 | /eastasianwidth/0.2.0: 324 | resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} 325 | dev: false 326 | 327 | /ee-first/1.1.1: 328 | resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} 329 | dev: false 330 | 331 | /emoji-regex/8.0.0: 332 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 333 | dev: false 334 | 335 | /emoji-regex/9.2.2: 336 | resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} 337 | dev: false 338 | 339 | /encodeurl/1.0.2: 340 | resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} 341 | engines: {node: '>= 0.8'} 342 | dev: false 343 | 344 | /entities/4.5.0: 345 | resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} 346 | engines: {node: '>=0.12'} 347 | dev: false 348 | 349 | /es-define-property/1.0.0: 350 | resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} 351 | engines: {node: '>= 0.4'} 352 | dependencies: 353 | get-intrinsic: 1.2.4 354 | dev: false 355 | 356 | /es-errors/1.3.0: 357 | resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} 358 | engines: {node: '>= 0.4'} 359 | dev: false 360 | 361 | /escape-html/1.0.3: 362 | resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} 363 | dev: false 364 | 365 | /etag/1.8.1: 366 | resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} 367 | engines: {node: '>= 0.6'} 368 | dev: false 369 | 370 | /express-handlebars/7.1.2: 371 | resolution: {integrity: sha512-ss9d3mBChOLTEtyfzXCsxlItUxpgS3i4cb/F70G6Q5ohQzmD12XB4x/Y9U6YboeeYBJZt7WQ5yUNu7ZSQ/EGyQ==} 372 | engines: {node: '>=v16'} 373 | dependencies: 374 | glob: 10.3.14 375 | graceful-fs: 4.2.11 376 | handlebars: 4.7.8 377 | dev: false 378 | 379 | /express/4.19.2: 380 | resolution: {integrity: sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==} 381 | engines: {node: '>= 0.10.0'} 382 | dependencies: 383 | accepts: 1.3.8 384 | array-flatten: 1.1.1 385 | body-parser: 1.20.2 386 | content-disposition: 0.5.4 387 | content-type: 1.0.5 388 | cookie: 0.6.0 389 | cookie-signature: 1.0.6 390 | debug: 2.6.9 391 | depd: 2.0.0 392 | encodeurl: 1.0.2 393 | escape-html: 1.0.3 394 | etag: 1.8.1 395 | finalhandler: 1.2.0 396 | fresh: 0.5.2 397 | http-errors: 2.0.0 398 | merge-descriptors: 1.0.1 399 | methods: 1.1.2 400 | on-finished: 2.4.1 401 | parseurl: 1.3.3 402 | path-to-regexp: 0.1.7 403 | proxy-addr: 2.0.7 404 | qs: 6.11.0 405 | range-parser: 1.2.1 406 | safe-buffer: 5.2.1 407 | send: 0.18.0 408 | serve-static: 1.15.0 409 | setprototypeof: 1.2.0 410 | statuses: 2.0.1 411 | type-is: 1.6.18 412 | utils-merge: 1.0.1 413 | vary: 1.1.2 414 | transitivePeerDependencies: 415 | - supports-color 416 | dev: false 417 | 418 | /fetch-blob/3.2.0: 419 | resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==} 420 | engines: {node: ^12.20 || >= 14.13} 421 | dependencies: 422 | node-domexception: 1.0.0 423 | web-streams-polyfill: 3.3.3 424 | dev: false 425 | 426 | /fill-range/7.0.1: 427 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} 428 | engines: {node: '>=8'} 429 | dependencies: 430 | to-regex-range: 5.0.1 431 | dev: true 432 | 433 | /finalhandler/1.2.0: 434 | resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} 435 | engines: {node: '>= 0.8'} 436 | dependencies: 437 | debug: 2.6.9 438 | encodeurl: 1.0.2 439 | escape-html: 1.0.3 440 | on-finished: 2.4.1 441 | parseurl: 1.3.3 442 | statuses: 2.0.1 443 | unpipe: 1.0.0 444 | transitivePeerDependencies: 445 | - supports-color 446 | dev: false 447 | 448 | /foreground-child/3.1.1: 449 | resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} 450 | engines: {node: '>=14'} 451 | dependencies: 452 | cross-spawn: 7.0.3 453 | signal-exit: 4.1.0 454 | dev: false 455 | 456 | /form-data/4.0.0: 457 | resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} 458 | engines: {node: '>= 6'} 459 | dependencies: 460 | asynckit: 0.4.0 461 | combined-stream: 1.0.8 462 | mime-types: 2.1.35 463 | dev: false 464 | 465 | /formdata-polyfill/4.0.10: 466 | resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} 467 | engines: {node: '>=12.20.0'} 468 | dependencies: 469 | fetch-blob: 3.2.0 470 | dev: false 471 | 472 | /forwarded/0.2.0: 473 | resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} 474 | engines: {node: '>= 0.6'} 475 | dev: false 476 | 477 | /fresh/0.5.2: 478 | resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} 479 | engines: {node: '>= 0.6'} 480 | dev: false 481 | 482 | /fsevents/2.3.3: 483 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 484 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 485 | os: [darwin] 486 | requiresBuild: true 487 | dev: true 488 | optional: true 489 | 490 | /function-bind/1.1.2: 491 | resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} 492 | dev: false 493 | 494 | /get-intrinsic/1.2.4: 495 | resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} 496 | engines: {node: '>= 0.4'} 497 | dependencies: 498 | es-errors: 1.3.0 499 | function-bind: 1.1.2 500 | has-proto: 1.0.3 501 | has-symbols: 1.0.3 502 | hasown: 2.0.2 503 | dev: false 504 | 505 | /glob-parent/5.1.2: 506 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 507 | engines: {node: '>= 6'} 508 | dependencies: 509 | is-glob: 4.0.3 510 | dev: true 511 | 512 | /glob/10.3.14: 513 | resolution: {integrity: sha512-4fkAqu93xe9Mk7le9v0y3VrPDqLKHarNi2s4Pv7f2yOvfhWfhc7hRPHC/JyqMqb8B/Dt/eGS4n7ykwf3fOsl8g==} 514 | engines: {node: '>=16 || 14 >=14.17'} 515 | hasBin: true 516 | dependencies: 517 | foreground-child: 3.1.1 518 | jackspeak: 2.3.6 519 | minimatch: 9.0.4 520 | minipass: 7.1.1 521 | path-scurry: 1.11.0 522 | dev: false 523 | 524 | /gopd/1.0.1: 525 | resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} 526 | dependencies: 527 | get-intrinsic: 1.2.4 528 | dev: false 529 | 530 | /graceful-fs/4.2.11: 531 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} 532 | dev: false 533 | 534 | /handlebars/4.7.8: 535 | resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} 536 | engines: {node: '>=0.4.7'} 537 | hasBin: true 538 | dependencies: 539 | minimist: 1.2.8 540 | neo-async: 2.6.2 541 | source-map: 0.6.1 542 | wordwrap: 1.0.0 543 | optionalDependencies: 544 | uglify-js: 3.17.4 545 | dev: false 546 | 547 | /has-flag/3.0.0: 548 | resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} 549 | engines: {node: '>=4'} 550 | dev: true 551 | 552 | /has-property-descriptors/1.0.2: 553 | resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} 554 | dependencies: 555 | es-define-property: 1.0.0 556 | dev: false 557 | 558 | /has-proto/1.0.3: 559 | resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} 560 | engines: {node: '>= 0.4'} 561 | dev: false 562 | 563 | /has-symbols/1.0.3: 564 | resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} 565 | engines: {node: '>= 0.4'} 566 | dev: false 567 | 568 | /hasown/2.0.2: 569 | resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} 570 | engines: {node: '>= 0.4'} 571 | dependencies: 572 | function-bind: 1.1.2 573 | dev: false 574 | 575 | /html-encoding-sniffer/4.0.0: 576 | resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==} 577 | engines: {node: '>=18'} 578 | dependencies: 579 | whatwg-encoding: 3.1.1 580 | dev: false 581 | 582 | /http-errors/2.0.0: 583 | resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} 584 | engines: {node: '>= 0.8'} 585 | dependencies: 586 | depd: 2.0.0 587 | inherits: 2.0.4 588 | setprototypeof: 1.2.0 589 | statuses: 2.0.1 590 | toidentifier: 1.0.1 591 | dev: false 592 | 593 | /http-proxy-agent/7.0.2: 594 | resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} 595 | engines: {node: '>= 14'} 596 | dependencies: 597 | agent-base: 7.1.1 598 | debug: 4.3.4 599 | transitivePeerDependencies: 600 | - supports-color 601 | dev: false 602 | 603 | /https-proxy-agent/7.0.4: 604 | resolution: {integrity: sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==} 605 | engines: {node: '>= 14'} 606 | dependencies: 607 | agent-base: 7.1.1 608 | debug: 4.3.4 609 | transitivePeerDependencies: 610 | - supports-color 611 | dev: false 612 | 613 | /iconv-lite/0.4.24: 614 | resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} 615 | engines: {node: '>=0.10.0'} 616 | dependencies: 617 | safer-buffer: 2.1.2 618 | dev: false 619 | 620 | /iconv-lite/0.6.3: 621 | resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} 622 | engines: {node: '>=0.10.0'} 623 | dependencies: 624 | safer-buffer: 2.1.2 625 | dev: false 626 | 627 | /ignore-by-default/1.0.1: 628 | resolution: {integrity: sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==} 629 | dev: true 630 | 631 | /inherits/2.0.4: 632 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 633 | dev: false 634 | 635 | /ipaddr.js/1.9.1: 636 | resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} 637 | engines: {node: '>= 0.10'} 638 | dev: false 639 | 640 | /is-binary-path/2.1.0: 641 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 642 | engines: {node: '>=8'} 643 | dependencies: 644 | binary-extensions: 2.3.0 645 | dev: true 646 | 647 | /is-extglob/2.1.1: 648 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 649 | engines: {node: '>=0.10.0'} 650 | dev: true 651 | 652 | /is-fullwidth-code-point/3.0.0: 653 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 654 | engines: {node: '>=8'} 655 | dev: false 656 | 657 | /is-glob/4.0.3: 658 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 659 | engines: {node: '>=0.10.0'} 660 | dependencies: 661 | is-extglob: 2.1.1 662 | dev: true 663 | 664 | /is-number/7.0.0: 665 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 666 | engines: {node: '>=0.12.0'} 667 | dev: true 668 | 669 | /is-potential-custom-element-name/1.0.1: 670 | resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} 671 | dev: false 672 | 673 | /isexe/2.0.0: 674 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 675 | dev: false 676 | 677 | /jackspeak/2.3.6: 678 | resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} 679 | engines: {node: '>=14'} 680 | dependencies: 681 | '@isaacs/cliui': 8.0.2 682 | optionalDependencies: 683 | '@pkgjs/parseargs': 0.11.0 684 | dev: false 685 | 686 | /jsdom/24.1.0: 687 | resolution: {integrity: sha512-6gpM7pRXCwIOKxX47cgOyvyQDN/Eh0f1MeKySBV2xGdKtqJBLj8P25eY3EVCWo2mglDDzozR2r2MW4T+JiNUZA==} 688 | engines: {node: '>=18'} 689 | peerDependencies: 690 | canvas: ^2.11.2 691 | peerDependenciesMeta: 692 | canvas: 693 | optional: true 694 | dependencies: 695 | cssstyle: 4.0.1 696 | data-urls: 5.0.0 697 | decimal.js: 10.4.3 698 | form-data: 4.0.0 699 | html-encoding-sniffer: 4.0.0 700 | http-proxy-agent: 7.0.2 701 | https-proxy-agent: 7.0.4 702 | is-potential-custom-element-name: 1.0.1 703 | nwsapi: 2.2.10 704 | parse5: 7.1.2 705 | rrweb-cssom: 0.7.0 706 | saxes: 6.0.0 707 | symbol-tree: 3.2.4 708 | tough-cookie: 4.1.4 709 | w3c-xmlserializer: 5.0.0 710 | webidl-conversions: 7.0.0 711 | whatwg-encoding: 3.1.1 712 | whatwg-mimetype: 4.0.0 713 | whatwg-url: 14.0.0 714 | ws: 8.17.0 715 | xml-name-validator: 5.0.0 716 | transitivePeerDependencies: 717 | - bufferutil 718 | - supports-color 719 | - utf-8-validate 720 | dev: false 721 | 722 | /lru-cache/10.2.2: 723 | resolution: {integrity: sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==} 724 | engines: {node: 14 || >=16.14} 725 | dev: false 726 | 727 | /media-typer/0.3.0: 728 | resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} 729 | engines: {node: '>= 0.6'} 730 | dev: false 731 | 732 | /merge-descriptors/1.0.1: 733 | resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} 734 | dev: false 735 | 736 | /methods/1.1.2: 737 | resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} 738 | engines: {node: '>= 0.6'} 739 | dev: false 740 | 741 | /mime-db/1.52.0: 742 | resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} 743 | engines: {node: '>= 0.6'} 744 | dev: false 745 | 746 | /mime-types/2.1.35: 747 | resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} 748 | engines: {node: '>= 0.6'} 749 | dependencies: 750 | mime-db: 1.52.0 751 | dev: false 752 | 753 | /mime/1.6.0: 754 | resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} 755 | engines: {node: '>=4'} 756 | hasBin: true 757 | dev: false 758 | 759 | /minimatch/3.1.2: 760 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 761 | dependencies: 762 | brace-expansion: 1.1.11 763 | dev: true 764 | 765 | /minimatch/9.0.4: 766 | resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==} 767 | engines: {node: '>=16 || 14 >=14.17'} 768 | dependencies: 769 | brace-expansion: 2.0.1 770 | dev: false 771 | 772 | /minimist/1.2.8: 773 | resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} 774 | dev: false 775 | 776 | /minipass/7.1.1: 777 | resolution: {integrity: sha512-UZ7eQ+h8ywIRAW1hIEl2AqdwzJucU/Kp59+8kkZeSvafXhZjul247BvIJjEVFVeON6d7lM46XX1HXCduKAS8VA==} 778 | engines: {node: '>=16 || 14 >=14.17'} 779 | dev: false 780 | 781 | /ms/2.0.0: 782 | resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} 783 | dev: false 784 | 785 | /ms/2.1.2: 786 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 787 | 788 | /ms/2.1.3: 789 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 790 | dev: false 791 | 792 | /negotiator/0.6.3: 793 | resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} 794 | engines: {node: '>= 0.6'} 795 | dev: false 796 | 797 | /neo-async/2.6.2: 798 | resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} 799 | dev: false 800 | 801 | /node-domexception/1.0.0: 802 | resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} 803 | engines: {node: '>=10.5.0'} 804 | dev: false 805 | 806 | /node-fetch/3.3.2: 807 | resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==} 808 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 809 | dependencies: 810 | data-uri-to-buffer: 4.0.1 811 | fetch-blob: 3.2.0 812 | formdata-polyfill: 4.0.10 813 | dev: false 814 | 815 | /nodemon/3.1.0: 816 | resolution: {integrity: sha512-xqlktYlDMCepBJd43ZQhjWwMw2obW/JRvkrLxq5RCNcuDDX1DbcPT+qT1IlIIdf+DhnWs90JpTMe+Y5KxOchvA==} 817 | engines: {node: '>=10'} 818 | hasBin: true 819 | dependencies: 820 | chokidar: 3.6.0 821 | debug: 4.3.4_supports-color@5.5.0 822 | ignore-by-default: 1.0.1 823 | minimatch: 3.1.2 824 | pstree.remy: 1.1.8 825 | semver: 7.6.2 826 | simple-update-notifier: 2.0.0 827 | supports-color: 5.5.0 828 | touch: 3.1.0 829 | undefsafe: 2.0.5 830 | dev: true 831 | 832 | /nopt/1.0.10: 833 | resolution: {integrity: sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==} 834 | hasBin: true 835 | dependencies: 836 | abbrev: 1.1.1 837 | dev: true 838 | 839 | /normalize-path/3.0.0: 840 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 841 | engines: {node: '>=0.10.0'} 842 | dev: true 843 | 844 | /nwsapi/2.2.10: 845 | resolution: {integrity: sha512-QK0sRs7MKv0tKe1+5uZIQk/C8XGza4DAnztJG8iD+TpJIORARrCxczA738awHrZoHeTjSSoHqao2teO0dC/gFQ==} 846 | dev: false 847 | 848 | /object-inspect/1.13.1: 849 | resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} 850 | dev: false 851 | 852 | /on-finished/2.4.1: 853 | resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} 854 | engines: {node: '>= 0.8'} 855 | dependencies: 856 | ee-first: 1.1.1 857 | dev: false 858 | 859 | /parse5/7.1.2: 860 | resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} 861 | dependencies: 862 | entities: 4.5.0 863 | dev: false 864 | 865 | /parseurl/1.3.3: 866 | resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} 867 | engines: {node: '>= 0.8'} 868 | dev: false 869 | 870 | /path-key/3.1.1: 871 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 872 | engines: {node: '>=8'} 873 | dev: false 874 | 875 | /path-scurry/1.11.0: 876 | resolution: {integrity: sha512-LNHTaVkzaYaLGlO+0u3rQTz7QrHTFOuKyba9JMTQutkmtNew8dw8wOD7mTU/5fCPZzCWpfW0XnQKzY61P0aTaw==} 877 | engines: {node: '>=16 || 14 >=14.17'} 878 | dependencies: 879 | lru-cache: 10.2.2 880 | minipass: 7.1.1 881 | dev: false 882 | 883 | /path-to-regexp/0.1.7: 884 | resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} 885 | dev: false 886 | 887 | /picomatch/2.3.1: 888 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 889 | engines: {node: '>=8.6'} 890 | dev: true 891 | 892 | /proxy-addr/2.0.7: 893 | resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} 894 | engines: {node: '>= 0.10'} 895 | dependencies: 896 | forwarded: 0.2.0 897 | ipaddr.js: 1.9.1 898 | dev: false 899 | 900 | /psl/1.9.0: 901 | resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} 902 | dev: false 903 | 904 | /pstree.remy/1.1.8: 905 | resolution: {integrity: sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==} 906 | dev: true 907 | 908 | /punycode/2.3.1: 909 | resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} 910 | engines: {node: '>=6'} 911 | dev: false 912 | 913 | /qs/6.11.0: 914 | resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} 915 | engines: {node: '>=0.6'} 916 | dependencies: 917 | side-channel: 1.0.6 918 | dev: false 919 | 920 | /querystringify/2.2.0: 921 | resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} 922 | dev: false 923 | 924 | /range-parser/1.2.1: 925 | resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} 926 | engines: {node: '>= 0.6'} 927 | dev: false 928 | 929 | /raw-body/2.5.2: 930 | resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} 931 | engines: {node: '>= 0.8'} 932 | dependencies: 933 | bytes: 3.1.2 934 | http-errors: 2.0.0 935 | iconv-lite: 0.4.24 936 | unpipe: 1.0.0 937 | dev: false 938 | 939 | /readdirp/3.6.0: 940 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 941 | engines: {node: '>=8.10.0'} 942 | dependencies: 943 | picomatch: 2.3.1 944 | dev: true 945 | 946 | /requires-port/1.0.0: 947 | resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} 948 | dev: false 949 | 950 | /rrweb-cssom/0.6.0: 951 | resolution: {integrity: sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==} 952 | dev: false 953 | 954 | /rrweb-cssom/0.7.0: 955 | resolution: {integrity: sha512-KlSv0pm9kgQSRxXEMgtivPJ4h826YHsuob8pSHcfSZsSXGtvpEAie8S0AnXuObEJ7nhikOb4ahwxDm0H2yW17g==} 956 | dev: false 957 | 958 | /safe-buffer/5.2.1: 959 | resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} 960 | dev: false 961 | 962 | /safer-buffer/2.1.2: 963 | resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} 964 | dev: false 965 | 966 | /saxes/6.0.0: 967 | resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} 968 | engines: {node: '>=v12.22.7'} 969 | dependencies: 970 | xmlchars: 2.2.0 971 | dev: false 972 | 973 | /semver/7.6.2: 974 | resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==} 975 | engines: {node: '>=10'} 976 | hasBin: true 977 | dev: true 978 | 979 | /send/0.18.0: 980 | resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} 981 | engines: {node: '>= 0.8.0'} 982 | dependencies: 983 | debug: 2.6.9 984 | depd: 2.0.0 985 | destroy: 1.2.0 986 | encodeurl: 1.0.2 987 | escape-html: 1.0.3 988 | etag: 1.8.1 989 | fresh: 0.5.2 990 | http-errors: 2.0.0 991 | mime: 1.6.0 992 | ms: 2.1.3 993 | on-finished: 2.4.1 994 | range-parser: 1.2.1 995 | statuses: 2.0.1 996 | transitivePeerDependencies: 997 | - supports-color 998 | dev: false 999 | 1000 | /serve-static/1.15.0: 1001 | resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} 1002 | engines: {node: '>= 0.8.0'} 1003 | dependencies: 1004 | encodeurl: 1.0.2 1005 | escape-html: 1.0.3 1006 | parseurl: 1.3.3 1007 | send: 0.18.0 1008 | transitivePeerDependencies: 1009 | - supports-color 1010 | dev: false 1011 | 1012 | /set-function-length/1.2.2: 1013 | resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} 1014 | engines: {node: '>= 0.4'} 1015 | dependencies: 1016 | define-data-property: 1.1.4 1017 | es-errors: 1.3.0 1018 | function-bind: 1.1.2 1019 | get-intrinsic: 1.2.4 1020 | gopd: 1.0.1 1021 | has-property-descriptors: 1.0.2 1022 | dev: false 1023 | 1024 | /setprototypeof/1.2.0: 1025 | resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} 1026 | dev: false 1027 | 1028 | /shebang-command/2.0.0: 1029 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 1030 | engines: {node: '>=8'} 1031 | dependencies: 1032 | shebang-regex: 3.0.0 1033 | dev: false 1034 | 1035 | /shebang-regex/3.0.0: 1036 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 1037 | engines: {node: '>=8'} 1038 | dev: false 1039 | 1040 | /side-channel/1.0.6: 1041 | resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} 1042 | engines: {node: '>= 0.4'} 1043 | dependencies: 1044 | call-bind: 1.0.7 1045 | es-errors: 1.3.0 1046 | get-intrinsic: 1.2.4 1047 | object-inspect: 1.13.1 1048 | dev: false 1049 | 1050 | /signal-exit/4.1.0: 1051 | resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} 1052 | engines: {node: '>=14'} 1053 | dev: false 1054 | 1055 | /simple-update-notifier/2.0.0: 1056 | resolution: {integrity: sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==} 1057 | engines: {node: '>=10'} 1058 | dependencies: 1059 | semver: 7.6.2 1060 | dev: true 1061 | 1062 | /source-map/0.6.1: 1063 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} 1064 | engines: {node: '>=0.10.0'} 1065 | dev: false 1066 | 1067 | /statuses/2.0.1: 1068 | resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} 1069 | engines: {node: '>= 0.8'} 1070 | dev: false 1071 | 1072 | /string-width/4.2.3: 1073 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 1074 | engines: {node: '>=8'} 1075 | dependencies: 1076 | emoji-regex: 8.0.0 1077 | is-fullwidth-code-point: 3.0.0 1078 | strip-ansi: 6.0.1 1079 | dev: false 1080 | 1081 | /string-width/5.1.2: 1082 | resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} 1083 | engines: {node: '>=12'} 1084 | dependencies: 1085 | eastasianwidth: 0.2.0 1086 | emoji-regex: 9.2.2 1087 | strip-ansi: 7.1.0 1088 | dev: false 1089 | 1090 | /strip-ansi/6.0.1: 1091 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 1092 | engines: {node: '>=8'} 1093 | dependencies: 1094 | ansi-regex: 5.0.1 1095 | dev: false 1096 | 1097 | /strip-ansi/7.1.0: 1098 | resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} 1099 | engines: {node: '>=12'} 1100 | dependencies: 1101 | ansi-regex: 6.0.1 1102 | dev: false 1103 | 1104 | /supports-color/5.5.0: 1105 | resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} 1106 | engines: {node: '>=4'} 1107 | dependencies: 1108 | has-flag: 3.0.0 1109 | dev: true 1110 | 1111 | /symbol-tree/3.2.4: 1112 | resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} 1113 | dev: false 1114 | 1115 | /to-regex-range/5.0.1: 1116 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 1117 | engines: {node: '>=8.0'} 1118 | dependencies: 1119 | is-number: 7.0.0 1120 | dev: true 1121 | 1122 | /toidentifier/1.0.1: 1123 | resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} 1124 | engines: {node: '>=0.6'} 1125 | dev: false 1126 | 1127 | /touch/3.1.0: 1128 | resolution: {integrity: sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==} 1129 | hasBin: true 1130 | dependencies: 1131 | nopt: 1.0.10 1132 | dev: true 1133 | 1134 | /tough-cookie/4.1.4: 1135 | resolution: {integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==} 1136 | engines: {node: '>=6'} 1137 | dependencies: 1138 | psl: 1.9.0 1139 | punycode: 2.3.1 1140 | universalify: 0.2.0 1141 | url-parse: 1.5.10 1142 | dev: false 1143 | 1144 | /tr46/5.0.0: 1145 | resolution: {integrity: sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==} 1146 | engines: {node: '>=18'} 1147 | dependencies: 1148 | punycode: 2.3.1 1149 | dev: false 1150 | 1151 | /type-is/1.6.18: 1152 | resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} 1153 | engines: {node: '>= 0.6'} 1154 | dependencies: 1155 | media-typer: 0.3.0 1156 | mime-types: 2.1.35 1157 | dev: false 1158 | 1159 | /uglify-js/3.17.4: 1160 | resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==} 1161 | engines: {node: '>=0.8.0'} 1162 | hasBin: true 1163 | requiresBuild: true 1164 | dev: false 1165 | optional: true 1166 | 1167 | /undefsafe/2.0.5: 1168 | resolution: {integrity: sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==} 1169 | dev: true 1170 | 1171 | /universalify/0.2.0: 1172 | resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} 1173 | engines: {node: '>= 4.0.0'} 1174 | dev: false 1175 | 1176 | /unpipe/1.0.0: 1177 | resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} 1178 | engines: {node: '>= 0.8'} 1179 | dev: false 1180 | 1181 | /url-parse/1.5.10: 1182 | resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} 1183 | dependencies: 1184 | querystringify: 2.2.0 1185 | requires-port: 1.0.0 1186 | dev: false 1187 | 1188 | /url-slug/4.0.1: 1189 | resolution: {integrity: sha512-OkHgffjR6bce7jNTp5BUDBhg2IcnqSAi9DEhLH8Rhxrq84uPBMbHFzvOxniEIRpSSGBcG13LhrtNR5XzUdztfQ==} 1190 | engines: {node: '>=18.0.0'} 1191 | dev: false 1192 | 1193 | /utils-merge/1.0.1: 1194 | resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} 1195 | engines: {node: '>= 0.4.0'} 1196 | dev: false 1197 | 1198 | /vary/1.1.2: 1199 | resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} 1200 | engines: {node: '>= 0.8'} 1201 | dev: false 1202 | 1203 | /w3c-xmlserializer/5.0.0: 1204 | resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==} 1205 | engines: {node: '>=18'} 1206 | dependencies: 1207 | xml-name-validator: 5.0.0 1208 | dev: false 1209 | 1210 | /web-streams-polyfill/3.3.3: 1211 | resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} 1212 | engines: {node: '>= 8'} 1213 | dev: false 1214 | 1215 | /webidl-conversions/7.0.0: 1216 | resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} 1217 | engines: {node: '>=12'} 1218 | dev: false 1219 | 1220 | /whatwg-encoding/3.1.1: 1221 | resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} 1222 | engines: {node: '>=18'} 1223 | dependencies: 1224 | iconv-lite: 0.6.3 1225 | dev: false 1226 | 1227 | /whatwg-mimetype/4.0.0: 1228 | resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} 1229 | engines: {node: '>=18'} 1230 | dev: false 1231 | 1232 | /whatwg-url/14.0.0: 1233 | resolution: {integrity: sha512-1lfMEm2IEr7RIV+f4lUNPOqfFL+pO+Xw3fJSqmjX9AbXcXcYOkCe1P6+9VBZB6n94af16NfZf+sSk0JCBZC9aw==} 1234 | engines: {node: '>=18'} 1235 | dependencies: 1236 | tr46: 5.0.0 1237 | webidl-conversions: 7.0.0 1238 | dev: false 1239 | 1240 | /which/2.0.2: 1241 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 1242 | engines: {node: '>= 8'} 1243 | hasBin: true 1244 | dependencies: 1245 | isexe: 2.0.0 1246 | dev: false 1247 | 1248 | /wordwrap/1.0.0: 1249 | resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} 1250 | dev: false 1251 | 1252 | /wrap-ansi/7.0.0: 1253 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} 1254 | engines: {node: '>=10'} 1255 | dependencies: 1256 | ansi-styles: 4.3.0 1257 | string-width: 4.2.3 1258 | strip-ansi: 6.0.1 1259 | dev: false 1260 | 1261 | /wrap-ansi/8.1.0: 1262 | resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} 1263 | engines: {node: '>=12'} 1264 | dependencies: 1265 | ansi-styles: 6.2.1 1266 | string-width: 5.1.2 1267 | strip-ansi: 7.1.0 1268 | dev: false 1269 | 1270 | /ws/8.17.0: 1271 | resolution: {integrity: sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==} 1272 | engines: {node: '>=10.0.0'} 1273 | peerDependencies: 1274 | bufferutil: ^4.0.1 1275 | utf-8-validate: '>=5.0.2' 1276 | peerDependenciesMeta: 1277 | bufferutil: 1278 | optional: true 1279 | utf-8-validate: 1280 | optional: true 1281 | dev: false 1282 | 1283 | /xml-name-validator/5.0.0: 1284 | resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==} 1285 | engines: {node: '>=18'} 1286 | dev: false 1287 | 1288 | /xmlchars/2.2.0: 1289 | resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} 1290 | dev: false 1291 | -------------------------------------------------------------------------------- /shrinkwrap.yaml: -------------------------------------------------------------------------------- 1 | dependencies: 2 | '@netlify/functions': 2.7.0 3 | crypto: 1.0.1 4 | express: 4.19.2 5 | express-handlebars: 7.1.2 6 | jsdom: 24.1.0 7 | serverless-http: 3.2.0 8 | devDependencies: 9 | nodemon: 3.1.2 10 | packages: 11 | /@isaacs/cliui/8.0.2: 12 | dependencies: 13 | string-width: 5.1.2 14 | string-width-cjs: /string-width/4.2.3 15 | strip-ansi: 7.1.0 16 | strip-ansi-cjs: /strip-ansi/6.0.1 17 | wrap-ansi: 8.1.0 18 | wrap-ansi-cjs: /wrap-ansi/7.0.0 19 | dev: false 20 | engines: 21 | node: '>=12' 22 | resolution: 23 | integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== 24 | /@netlify/functions/2.7.0: 25 | dependencies: 26 | '@netlify/serverless-functions-api': 1.18.1 27 | dev: false 28 | engines: 29 | node: '>=14.0.0' 30 | resolution: 31 | integrity: sha512-4pXC/fuj3eGQ86wbgPiM4zY8+AsNrdz6vcv6FEdUJnZW+LqF8IWjQcY3S0d1hLeLKODYOqq4CkrzGyCpce63Nw== 32 | /@netlify/node-cookies/0.1.0: 33 | dev: false 34 | engines: 35 | node: ^14.16.0 || >=16.0.0 36 | resolution: 37 | integrity: sha512-OAs1xG+FfLX0LoRASpqzVntVV/RpYkgpI0VrUnw2u0Q1qiZUzcPffxRK8HF3gc4GjuhG5ahOEMJ9bswBiZPq0g== 38 | /@netlify/serverless-functions-api/1.18.1: 39 | dependencies: 40 | '@netlify/node-cookies': 0.1.0 41 | '@opentelemetry/core': 1.24.1 42 | '@opentelemetry/otlp-transformer': 0.50.0 43 | '@opentelemetry/resources': 1.24.1 44 | '@opentelemetry/sdk-trace-base': 1.24.1 45 | '@opentelemetry/semantic-conventions': 1.24.1 46 | urlpattern-polyfill: 8.0.2 47 | dev: false 48 | engines: 49 | node: '>=18.0.0' 50 | resolution: 51 | integrity: sha512-DrSvivchuwsuQW03zbVPT3nxCQa5tn7m4aoPOsQKibuJXIuSbfxzCBxPLz0+LchU5ds7YyOaCc9872Y32ngYzg== 52 | /@opentelemetry/api-logs/0.50.0: 53 | dependencies: 54 | '@opentelemetry/api': 1.8.0 55 | dev: false 56 | engines: 57 | node: '>=14' 58 | resolution: 59 | integrity: sha512-JdZuKrhOYggqOpUljAq4WWNi5nB10PmgoF0y2CvedLGXd0kSawb/UBnWT8gg1ND3bHCNHStAIVT0ELlxJJRqrA== 60 | /@opentelemetry/api/1.8.0: 61 | dev: false 62 | engines: 63 | node: '>=8.0.0' 64 | resolution: 65 | integrity: sha512-I/s6F7yKUDdtMsoBWXJe8Qz40Tui5vsuKCWJEWVL+5q9sSWRzzx6v2KeNsOBEwd94j0eWkpWCH4yB6rZg9Mf0w== 66 | /@opentelemetry/core/1.23.0: 67 | dependencies: 68 | '@opentelemetry/semantic-conventions': 1.23.0 69 | dev: false 70 | engines: 71 | node: '>=14' 72 | peerDependencies: 73 | '@opentelemetry/api': '>=1.0.0 <1.9.0' 74 | resolution: 75 | integrity: sha512-hdQ/a9TMzMQF/BO8Cz1juA43/L5YGtCSiKoOHmrTEf7VMDAZgy8ucpWx3eQTnQ3gBloRcWtzvcrMZABC3PTSKQ== 76 | /@opentelemetry/core/1.24.1: 77 | dependencies: 78 | '@opentelemetry/semantic-conventions': 1.24.1 79 | dev: false 80 | engines: 81 | node: '>=14' 82 | peerDependencies: 83 | '@opentelemetry/api': '>=1.0.0 <1.9.0' 84 | resolution: 85 | integrity: sha512-wMSGfsdmibI88K9wB498zXY04yThPexo8jvwNNlm542HZB7XrrMRBbAyKJqG8qDRJwIBdBrPMi4V9ZPW/sqrcg== 86 | /@opentelemetry/otlp-transformer/0.50.0: 87 | dependencies: 88 | '@opentelemetry/api-logs': 0.50.0 89 | '@opentelemetry/core': 1.23.0 90 | '@opentelemetry/resources': 1.23.0 91 | '@opentelemetry/sdk-logs': /@opentelemetry/sdk-logs/0.50.0/@opentelemetry!api-logs@0.50.0 92 | '@opentelemetry/sdk-metrics': 1.23.0 93 | '@opentelemetry/sdk-trace-base': 1.23.0 94 | dev: false 95 | engines: 96 | node: '>=14' 97 | peerDependencies: 98 | '@opentelemetry/api': '>=1.3.0 <1.9.0' 99 | resolution: 100 | integrity: sha512-s0sl1Yfqd5q1Kjrf6DqXPWzErL+XHhrXOfejh4Vc/SMTNqC902xDsC8JQxbjuramWt/+hibfguIvi7Ns8VLolA== 101 | /@opentelemetry/resources/1.23.0: 102 | dependencies: 103 | '@opentelemetry/core': 1.23.0 104 | '@opentelemetry/semantic-conventions': 1.23.0 105 | dev: false 106 | engines: 107 | node: '>=14' 108 | peerDependencies: 109 | '@opentelemetry/api': '>=1.0.0 <1.9.0' 110 | resolution: 111 | integrity: sha512-iPRLfVfcEQynYGo7e4Di+ti+YQTAY0h5mQEUJcHlU9JOqpb4x965O6PZ+wMcwYVY63G96KtdS86YCM1BF1vQZg== 112 | /@opentelemetry/resources/1.24.1: 113 | dependencies: 114 | '@opentelemetry/core': 1.24.1 115 | '@opentelemetry/semantic-conventions': 1.24.1 116 | dev: false 117 | engines: 118 | node: '>=14' 119 | peerDependencies: 120 | '@opentelemetry/api': '>=1.0.0 <1.9.0' 121 | resolution: 122 | integrity: sha512-cyv0MwAaPF7O86x5hk3NNgenMObeejZFLJJDVuSeSMIsknlsj3oOZzRv3qSzlwYomXsICfBeFFlxwHQte5mGXQ== 123 | /@opentelemetry/sdk-logs/0.50.0/@opentelemetry!api-logs@0.50.0: 124 | dependencies: 125 | '@opentelemetry/api-logs': 0.50.0 126 | '@opentelemetry/core': 1.23.0 127 | '@opentelemetry/resources': 1.23.0 128 | dev: false 129 | engines: 130 | node: '>=14' 131 | id: registry.npmjs.org/@opentelemetry/sdk-logs/0.50.0 132 | peerDependencies: 133 | '@opentelemetry/api': '>=1.4.0 <1.9.0' 134 | '@opentelemetry/api-logs': '>=0.39.1' 135 | resolution: 136 | integrity: sha512-PeUEupBB29p9nlPNqXoa1PUWNLsZnxG0DCDj3sHqzae+8y76B/A5hvZjg03ulWdnvBLYpnJslqzylG9E0IL87g== 137 | /@opentelemetry/sdk-metrics/1.23.0: 138 | dependencies: 139 | '@opentelemetry/core': 1.23.0 140 | '@opentelemetry/resources': 1.23.0 141 | lodash.merge: 4.6.2 142 | dev: false 143 | engines: 144 | node: '>=14' 145 | peerDependencies: 146 | '@opentelemetry/api': '>=1.3.0 <1.9.0' 147 | resolution: 148 | integrity: sha512-4OkvW6+wST4h6LFG23rXSTf6nmTf201h9dzq7bE0z5R9ESEVLERZz6WXwE7PSgg1gdjlaznm1jLJf8GttypFDg== 149 | /@opentelemetry/sdk-trace-base/1.23.0: 150 | dependencies: 151 | '@opentelemetry/core': 1.23.0 152 | '@opentelemetry/resources': 1.23.0 153 | '@opentelemetry/semantic-conventions': 1.23.0 154 | dev: false 155 | engines: 156 | node: '>=14' 157 | peerDependencies: 158 | '@opentelemetry/api': '>=1.0.0 <1.9.0' 159 | resolution: 160 | integrity: sha512-PzBmZM8hBomUqvCddF/5Olyyviayka44O5nDWq673np3ctnvwMOvNrsUORZjKja1zJbwEuD9niAGbnVrz3jwRQ== 161 | /@opentelemetry/sdk-trace-base/1.24.1: 162 | dependencies: 163 | '@opentelemetry/core': 1.24.1 164 | '@opentelemetry/resources': 1.24.1 165 | '@opentelemetry/semantic-conventions': 1.24.1 166 | dev: false 167 | engines: 168 | node: '>=14' 169 | peerDependencies: 170 | '@opentelemetry/api': '>=1.0.0 <1.9.0' 171 | resolution: 172 | integrity: sha512-zz+N423IcySgjihl2NfjBf0qw1RWe11XIAWVrTNOSSI6dtSPJiVom2zipFB2AEEtJWpv0Iz6DY6+TjnyTV5pWg== 173 | /@opentelemetry/semantic-conventions/1.23.0: 174 | dev: false 175 | engines: 176 | node: '>=14' 177 | resolution: 178 | integrity: sha512-MiqFvfOzfR31t8cc74CTP1OZfz7MbqpAnLCra8NqQoaHJX6ncIRTdYOQYBDQ2uFISDq0WY8Y9dDTWvsgzzBYRg== 179 | /@opentelemetry/semantic-conventions/1.24.1: 180 | dev: false 181 | engines: 182 | node: '>=14' 183 | resolution: 184 | integrity: sha512-VkliWlS4/+GHLLW7J/rVBA00uXus1SWvwFvcUDxDwmFxYfg/2VI6ekwdXS28cjI8Qz2ky2BzG8OUHo+WeYIWqw== 185 | /@pkgjs/parseargs/0.11.0: 186 | dev: false 187 | engines: 188 | node: '>=14' 189 | optional: true 190 | resolution: 191 | integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== 192 | /accepts/1.3.8: 193 | dependencies: 194 | mime-types: 2.1.35 195 | negotiator: 0.6.3 196 | dev: false 197 | engines: 198 | node: '>= 0.6' 199 | resolution: 200 | integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== 201 | /agent-base/7.1.1: 202 | dependencies: 203 | debug: 4.3.4 204 | dev: false 205 | engines: 206 | node: '>= 14' 207 | resolution: 208 | integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA== 209 | /ansi-regex/5.0.1: 210 | dev: false 211 | engines: 212 | node: '>=8' 213 | resolution: 214 | integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== 215 | /ansi-regex/6.0.1: 216 | dev: false 217 | engines: 218 | node: '>=12' 219 | resolution: 220 | integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== 221 | /ansi-styles/4.3.0: 222 | dependencies: 223 | color-convert: 2.0.1 224 | dev: false 225 | engines: 226 | node: '>=8' 227 | resolution: 228 | integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== 229 | /ansi-styles/6.2.1: 230 | dev: false 231 | engines: 232 | node: '>=12' 233 | resolution: 234 | integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== 235 | /anymatch/3.1.3: 236 | dependencies: 237 | normalize-path: 3.0.0 238 | picomatch: 2.3.1 239 | dev: true 240 | engines: 241 | node: '>= 8' 242 | resolution: 243 | integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== 244 | /array-flatten/1.1.1: 245 | dev: false 246 | resolution: 247 | integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== 248 | /asynckit/0.4.0: 249 | dev: false 250 | resolution: 251 | integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== 252 | /balanced-match/1.0.2: 253 | resolution: 254 | integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== 255 | /binary-extensions/2.3.0: 256 | dev: true 257 | engines: 258 | node: '>=8' 259 | resolution: 260 | integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== 261 | /body-parser/1.20.2: 262 | dependencies: 263 | bytes: 3.1.2 264 | content-type: 1.0.5 265 | debug: 2.6.9 266 | depd: 2.0.0 267 | destroy: 1.2.0 268 | http-errors: 2.0.0 269 | iconv-lite: 0.4.24 270 | on-finished: 2.4.1 271 | qs: 6.11.0 272 | raw-body: 2.5.2 273 | type-is: 1.6.18 274 | unpipe: 1.0.0 275 | dev: false 276 | engines: 277 | node: '>= 0.8' 278 | npm: 1.2.8000 || >= 1.4.16 279 | resolution: 280 | integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA== 281 | /brace-expansion/1.1.11: 282 | dependencies: 283 | balanced-match: 1.0.2 284 | concat-map: 0.0.1 285 | dev: true 286 | resolution: 287 | integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 288 | /brace-expansion/2.0.1: 289 | dependencies: 290 | balanced-match: 1.0.2 291 | dev: false 292 | resolution: 293 | integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== 294 | /braces/3.0.3: 295 | dependencies: 296 | fill-range: 7.1.1 297 | dev: true 298 | engines: 299 | node: '>=8' 300 | resolution: 301 | integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== 302 | /bytes/3.1.2: 303 | dev: false 304 | engines: 305 | node: '>= 0.8' 306 | resolution: 307 | integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== 308 | /call-bind/1.0.7: 309 | dependencies: 310 | es-define-property: 1.0.0 311 | es-errors: 1.3.0 312 | function-bind: 1.1.2 313 | get-intrinsic: 1.2.4 314 | set-function-length: 1.2.2 315 | dev: false 316 | engines: 317 | node: '>= 0.4' 318 | resolution: 319 | integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== 320 | /chokidar/3.6.0: 321 | dependencies: 322 | anymatch: 3.1.3 323 | braces: 3.0.3 324 | glob-parent: 5.1.2 325 | is-binary-path: 2.1.0 326 | is-glob: 4.0.3 327 | normalize-path: 3.0.0 328 | readdirp: 3.6.0 329 | dev: true 330 | engines: 331 | node: '>= 8.10.0' 332 | optionalDependencies: 333 | fsevents: 2.3.3 334 | resolution: 335 | integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== 336 | /color-convert/2.0.1: 337 | dependencies: 338 | color-name: 1.1.4 339 | dev: false 340 | engines: 341 | node: '>=7.0.0' 342 | resolution: 343 | integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== 344 | /color-name/1.1.4: 345 | dev: false 346 | resolution: 347 | integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== 348 | /combined-stream/1.0.8: 349 | dependencies: 350 | delayed-stream: 1.0.0 351 | dev: false 352 | engines: 353 | node: '>= 0.8' 354 | resolution: 355 | integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== 356 | /concat-map/0.0.1: 357 | dev: true 358 | resolution: 359 | integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== 360 | /content-disposition/0.5.4: 361 | dependencies: 362 | safe-buffer: 5.2.1 363 | dev: false 364 | engines: 365 | node: '>= 0.6' 366 | resolution: 367 | integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== 368 | /content-type/1.0.5: 369 | dev: false 370 | engines: 371 | node: '>= 0.6' 372 | resolution: 373 | integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== 374 | /cookie-signature/1.0.6: 375 | dev: false 376 | resolution: 377 | integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== 378 | /cookie/0.6.0: 379 | dev: false 380 | engines: 381 | node: '>= 0.6' 382 | resolution: 383 | integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw== 384 | /cross-spawn/7.0.3: 385 | dependencies: 386 | path-key: 3.1.1 387 | shebang-command: 2.0.0 388 | which: 2.0.2 389 | dev: false 390 | engines: 391 | node: '>= 8' 392 | resolution: 393 | integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== 394 | /crypto/1.0.1: 395 | deprecated: 'This package is no longer supported. It''s now a built-in Node module. If you''ve depended on crypto, you should switch to the one that''s built-in.' 396 | dev: false 397 | resolution: 398 | integrity: sha512-VxBKmeNcqQdiUQUW2Tzq0t377b54N2bMtXO/qiLa+6eRRmmC4qT3D4OnTGoT/U6O9aklQ/jTwbOtRMTTY8G0Ig== 399 | /cssstyle/4.0.1: 400 | dependencies: 401 | rrweb-cssom: 0.6.0 402 | dev: false 403 | engines: 404 | node: '>=18' 405 | resolution: 406 | integrity: sha512-8ZYiJ3A/3OkDd093CBT/0UKDWry7ak4BdPTFP2+QEP7cmhouyq/Up709ASSj2cK02BbZiMgk7kYjZNS4QP5qrQ== 407 | /data-urls/5.0.0: 408 | dependencies: 409 | whatwg-mimetype: 4.0.0 410 | whatwg-url: 14.0.0 411 | dev: false 412 | engines: 413 | node: '>=18' 414 | resolution: 415 | integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg== 416 | /debug/2.6.9: 417 | dependencies: 418 | ms: 2.0.0 419 | dev: false 420 | resolution: 421 | integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== 422 | /debug/4.3.4: 423 | dependencies: 424 | ms: 2.1.2 425 | engines: 426 | node: '>=6.0' 427 | resolution: 428 | integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== 429 | /decimal.js/10.4.3: 430 | dev: false 431 | resolution: 432 | integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA== 433 | /define-data-property/1.1.4: 434 | dependencies: 435 | es-define-property: 1.0.0 436 | es-errors: 1.3.0 437 | gopd: 1.0.1 438 | dev: false 439 | engines: 440 | node: '>= 0.4' 441 | resolution: 442 | integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== 443 | /delayed-stream/1.0.0: 444 | dev: false 445 | engines: 446 | node: '>=0.4.0' 447 | resolution: 448 | integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== 449 | /depd/2.0.0: 450 | dev: false 451 | engines: 452 | node: '>= 0.8' 453 | resolution: 454 | integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== 455 | /destroy/1.2.0: 456 | dev: false 457 | engines: 458 | node: '>= 0.8' 459 | npm: 1.2.8000 || >= 1.4.16 460 | resolution: 461 | integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== 462 | /eastasianwidth/0.2.0: 463 | dev: false 464 | resolution: 465 | integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== 466 | /ee-first/1.1.1: 467 | dev: false 468 | resolution: 469 | integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== 470 | /emoji-regex/8.0.0: 471 | dev: false 472 | resolution: 473 | integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== 474 | /emoji-regex/9.2.2: 475 | dev: false 476 | resolution: 477 | integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== 478 | /encodeurl/1.0.2: 479 | dev: false 480 | engines: 481 | node: '>= 0.8' 482 | resolution: 483 | integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== 484 | /entities/4.5.0: 485 | dev: false 486 | engines: 487 | node: '>=0.12' 488 | resolution: 489 | integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== 490 | /es-define-property/1.0.0: 491 | dependencies: 492 | get-intrinsic: 1.2.4 493 | dev: false 494 | engines: 495 | node: '>= 0.4' 496 | resolution: 497 | integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== 498 | /es-errors/1.3.0: 499 | dev: false 500 | engines: 501 | node: '>= 0.4' 502 | resolution: 503 | integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== 504 | /escape-html/1.0.3: 505 | dev: false 506 | resolution: 507 | integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== 508 | /etag/1.8.1: 509 | dev: false 510 | engines: 511 | node: '>= 0.6' 512 | resolution: 513 | integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== 514 | /express-handlebars/7.1.2: 515 | dependencies: 516 | glob: 10.4.1 517 | graceful-fs: 4.2.11 518 | handlebars: 4.7.8 519 | dev: false 520 | engines: 521 | node: '>=v16' 522 | resolution: 523 | integrity: sha512-ss9d3mBChOLTEtyfzXCsxlItUxpgS3i4cb/F70G6Q5ohQzmD12XB4x/Y9U6YboeeYBJZt7WQ5yUNu7ZSQ/EGyQ== 524 | /express/4.19.2: 525 | dependencies: 526 | accepts: 1.3.8 527 | array-flatten: 1.1.1 528 | body-parser: 1.20.2 529 | content-disposition: 0.5.4 530 | content-type: 1.0.5 531 | cookie: 0.6.0 532 | cookie-signature: 1.0.6 533 | debug: 2.6.9 534 | depd: 2.0.0 535 | encodeurl: 1.0.2 536 | escape-html: 1.0.3 537 | etag: 1.8.1 538 | finalhandler: 1.2.0 539 | fresh: 0.5.2 540 | http-errors: 2.0.0 541 | merge-descriptors: 1.0.1 542 | methods: 1.1.2 543 | on-finished: 2.4.1 544 | parseurl: 1.3.3 545 | path-to-regexp: 0.1.7 546 | proxy-addr: 2.0.7 547 | qs: 6.11.0 548 | range-parser: 1.2.1 549 | safe-buffer: 5.2.1 550 | send: 0.18.0 551 | serve-static: 1.15.0 552 | setprototypeof: 1.2.0 553 | statuses: 2.0.1 554 | type-is: 1.6.18 555 | utils-merge: 1.0.1 556 | vary: 1.1.2 557 | dev: false 558 | engines: 559 | node: '>= 0.10.0' 560 | resolution: 561 | integrity: sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q== 562 | /fill-range/7.1.1: 563 | dependencies: 564 | to-regex-range: 5.0.1 565 | dev: true 566 | engines: 567 | node: '>=8' 568 | resolution: 569 | integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== 570 | /finalhandler/1.2.0: 571 | dependencies: 572 | debug: 2.6.9 573 | encodeurl: 1.0.2 574 | escape-html: 1.0.3 575 | on-finished: 2.4.1 576 | parseurl: 1.3.3 577 | statuses: 2.0.1 578 | unpipe: 1.0.0 579 | dev: false 580 | engines: 581 | node: '>= 0.8' 582 | resolution: 583 | integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== 584 | /foreground-child/3.1.1: 585 | dependencies: 586 | cross-spawn: 7.0.3 587 | signal-exit: 4.1.0 588 | dev: false 589 | engines: 590 | node: '>=14' 591 | resolution: 592 | integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg== 593 | /form-data/4.0.0: 594 | dependencies: 595 | asynckit: 0.4.0 596 | combined-stream: 1.0.8 597 | mime-types: 2.1.35 598 | dev: false 599 | engines: 600 | node: '>= 6' 601 | resolution: 602 | integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== 603 | /forwarded/0.2.0: 604 | dev: false 605 | engines: 606 | node: '>= 0.6' 607 | resolution: 608 | integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== 609 | /fresh/0.5.2: 610 | dev: false 611 | engines: 612 | node: '>= 0.6' 613 | resolution: 614 | integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== 615 | /fsevents/2.3.3: 616 | dev: true 617 | engines: 618 | node: ^8.16.0 || ^10.6.0 || >=11.0.0 619 | optional: true 620 | os: 621 | - darwin 622 | resolution: 623 | integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== 624 | /function-bind/1.1.2: 625 | dev: false 626 | resolution: 627 | integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== 628 | /get-intrinsic/1.2.4: 629 | dependencies: 630 | es-errors: 1.3.0 631 | function-bind: 1.1.2 632 | has-proto: 1.0.3 633 | has-symbols: 1.0.3 634 | hasown: 2.0.2 635 | dev: false 636 | engines: 637 | node: '>= 0.4' 638 | resolution: 639 | integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== 640 | /glob-parent/5.1.2: 641 | dependencies: 642 | is-glob: 4.0.3 643 | dev: true 644 | engines: 645 | node: '>= 6' 646 | resolution: 647 | integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== 648 | /glob/10.4.1: 649 | dependencies: 650 | foreground-child: 3.1.1 651 | jackspeak: 3.1.2 652 | minimatch: 9.0.4 653 | minipass: 7.1.2 654 | path-scurry: 1.11.1 655 | dev: false 656 | engines: 657 | node: '>=16 || 14 >=14.18' 658 | hasBin: true 659 | resolution: 660 | integrity: sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw== 661 | /gopd/1.0.1: 662 | dependencies: 663 | get-intrinsic: 1.2.4 664 | dev: false 665 | resolution: 666 | integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== 667 | /graceful-fs/4.2.11: 668 | dev: false 669 | resolution: 670 | integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== 671 | /handlebars/4.7.8: 672 | dependencies: 673 | minimist: 1.2.8 674 | neo-async: 2.6.2 675 | source-map: 0.6.1 676 | wordwrap: 1.0.0 677 | dev: false 678 | engines: 679 | node: '>=0.4.7' 680 | hasBin: true 681 | optionalDependencies: 682 | uglify-js: 3.17.4 683 | resolution: 684 | integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ== 685 | /has-flag/3.0.0: 686 | dev: true 687 | engines: 688 | node: '>=4' 689 | resolution: 690 | integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== 691 | /has-property-descriptors/1.0.2: 692 | dependencies: 693 | es-define-property: 1.0.0 694 | dev: false 695 | resolution: 696 | integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== 697 | /has-proto/1.0.3: 698 | dev: false 699 | engines: 700 | node: '>= 0.4' 701 | resolution: 702 | integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q== 703 | /has-symbols/1.0.3: 704 | dev: false 705 | engines: 706 | node: '>= 0.4' 707 | resolution: 708 | integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== 709 | /hasown/2.0.2: 710 | dependencies: 711 | function-bind: 1.1.2 712 | dev: false 713 | engines: 714 | node: '>= 0.4' 715 | resolution: 716 | integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== 717 | /html-encoding-sniffer/4.0.0: 718 | dependencies: 719 | whatwg-encoding: 3.1.1 720 | dev: false 721 | engines: 722 | node: '>=18' 723 | resolution: 724 | integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ== 725 | /http-errors/2.0.0: 726 | dependencies: 727 | depd: 2.0.0 728 | inherits: 2.0.4 729 | setprototypeof: 1.2.0 730 | statuses: 2.0.1 731 | toidentifier: 1.0.1 732 | dev: false 733 | engines: 734 | node: '>= 0.8' 735 | resolution: 736 | integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== 737 | /http-proxy-agent/7.0.2: 738 | dependencies: 739 | agent-base: 7.1.1 740 | debug: 4.3.4 741 | dev: false 742 | engines: 743 | node: '>= 14' 744 | resolution: 745 | integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig== 746 | /https-proxy-agent/7.0.4: 747 | dependencies: 748 | agent-base: 7.1.1 749 | debug: 4.3.4 750 | dev: false 751 | engines: 752 | node: '>= 14' 753 | resolution: 754 | integrity: sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg== 755 | /iconv-lite/0.4.24: 756 | dependencies: 757 | safer-buffer: 2.1.2 758 | dev: false 759 | engines: 760 | node: '>=0.10.0' 761 | resolution: 762 | integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== 763 | /iconv-lite/0.6.3: 764 | dependencies: 765 | safer-buffer: 2.1.2 766 | dev: false 767 | engines: 768 | node: '>=0.10.0' 769 | resolution: 770 | integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== 771 | /ignore-by-default/1.0.1: 772 | dev: true 773 | resolution: 774 | integrity: sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA== 775 | /inherits/2.0.4: 776 | dev: false 777 | resolution: 778 | integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 779 | /ipaddr.js/1.9.1: 780 | dev: false 781 | engines: 782 | node: '>= 0.10' 783 | resolution: 784 | integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== 785 | /is-binary-path/2.1.0: 786 | dependencies: 787 | binary-extensions: 2.3.0 788 | dev: true 789 | engines: 790 | node: '>=8' 791 | resolution: 792 | integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== 793 | /is-extglob/2.1.1: 794 | dev: true 795 | engines: 796 | node: '>=0.10.0' 797 | resolution: 798 | integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== 799 | /is-fullwidth-code-point/3.0.0: 800 | dev: false 801 | engines: 802 | node: '>=8' 803 | resolution: 804 | integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== 805 | /is-glob/4.0.3: 806 | dependencies: 807 | is-extglob: 2.1.1 808 | dev: true 809 | engines: 810 | node: '>=0.10.0' 811 | resolution: 812 | integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== 813 | /is-number/7.0.0: 814 | dev: true 815 | engines: 816 | node: '>=0.12.0' 817 | resolution: 818 | integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== 819 | /is-potential-custom-element-name/1.0.1: 820 | dev: false 821 | resolution: 822 | integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== 823 | /isexe/2.0.0: 824 | dev: false 825 | resolution: 826 | integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== 827 | /jackspeak/3.1.2: 828 | dependencies: 829 | '@isaacs/cliui': 8.0.2 830 | dev: false 831 | engines: 832 | node: '>=14' 833 | optionalDependencies: 834 | '@pkgjs/parseargs': 0.11.0 835 | resolution: 836 | integrity: sha512-kWmLKn2tRtfYMF/BakihVVRzBKOxz4gJMiL2Rj91WnAB5TPZumSH99R/Yf1qE1u4uRimvCSJfm6hnxohXeEXjQ== 837 | /jsdom/24.1.0: 838 | dependencies: 839 | cssstyle: 4.0.1 840 | data-urls: 5.0.0 841 | decimal.js: 10.4.3 842 | form-data: 4.0.0 843 | html-encoding-sniffer: 4.0.0 844 | http-proxy-agent: 7.0.2 845 | https-proxy-agent: 7.0.4 846 | is-potential-custom-element-name: 1.0.1 847 | nwsapi: 2.2.10 848 | parse5: 7.1.2 849 | rrweb-cssom: 0.7.0 850 | saxes: 6.0.0 851 | symbol-tree: 3.2.4 852 | tough-cookie: 4.1.4 853 | w3c-xmlserializer: 5.0.0 854 | webidl-conversions: 7.0.0 855 | whatwg-encoding: 3.1.1 856 | whatwg-mimetype: 4.0.0 857 | whatwg-url: 14.0.0 858 | ws: 8.17.0 859 | xml-name-validator: 5.0.0 860 | dev: false 861 | engines: 862 | node: '>=18' 863 | peerDependencies: 864 | canvas: ^2.11.2 865 | resolution: 866 | integrity: sha512-6gpM7pRXCwIOKxX47cgOyvyQDN/Eh0f1MeKySBV2xGdKtqJBLj8P25eY3EVCWo2mglDDzozR2r2MW4T+JiNUZA== 867 | /lodash.merge/4.6.2: 868 | dev: false 869 | resolution: 870 | integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== 871 | /lru-cache/10.2.2: 872 | dev: false 873 | engines: 874 | node: 14 || >=16.14 875 | resolution: 876 | integrity: sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ== 877 | /media-typer/0.3.0: 878 | dev: false 879 | engines: 880 | node: '>= 0.6' 881 | resolution: 882 | integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== 883 | /merge-descriptors/1.0.1: 884 | dev: false 885 | resolution: 886 | integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== 887 | /methods/1.1.2: 888 | dev: false 889 | engines: 890 | node: '>= 0.6' 891 | resolution: 892 | integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== 893 | /mime-db/1.52.0: 894 | dev: false 895 | engines: 896 | node: '>= 0.6' 897 | resolution: 898 | integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== 899 | /mime-types/2.1.35: 900 | dependencies: 901 | mime-db: 1.52.0 902 | dev: false 903 | engines: 904 | node: '>= 0.6' 905 | resolution: 906 | integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== 907 | /mime/1.6.0: 908 | dev: false 909 | engines: 910 | node: '>=4' 911 | hasBin: true 912 | resolution: 913 | integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== 914 | /minimatch/3.1.2: 915 | dependencies: 916 | brace-expansion: 1.1.11 917 | dev: true 918 | resolution: 919 | integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== 920 | /minimatch/9.0.4: 921 | dependencies: 922 | brace-expansion: 2.0.1 923 | dev: false 924 | engines: 925 | node: '>=16 || 14 >=14.17' 926 | resolution: 927 | integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw== 928 | /minimist/1.2.8: 929 | dev: false 930 | resolution: 931 | integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== 932 | /minipass/7.1.2: 933 | dev: false 934 | engines: 935 | node: '>=16 || 14 >=14.17' 936 | resolution: 937 | integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== 938 | /ms/2.0.0: 939 | dev: false 940 | resolution: 941 | integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== 942 | /ms/2.1.2: 943 | resolution: 944 | integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 945 | /ms/2.1.3: 946 | dev: false 947 | resolution: 948 | integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== 949 | /negotiator/0.6.3: 950 | dev: false 951 | engines: 952 | node: '>= 0.6' 953 | resolution: 954 | integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== 955 | /neo-async/2.6.2: 956 | dev: false 957 | resolution: 958 | integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== 959 | /nodemon/3.1.2: 960 | dependencies: 961 | chokidar: 3.6.0 962 | debug: 4.3.4 963 | ignore-by-default: 1.0.1 964 | minimatch: 3.1.2 965 | pstree.remy: 1.1.8 966 | semver: 7.6.2 967 | simple-update-notifier: 2.0.0 968 | supports-color: 5.5.0 969 | touch: 3.1.1 970 | undefsafe: 2.0.5 971 | dev: true 972 | engines: 973 | node: '>=10' 974 | hasBin: true 975 | resolution: 976 | integrity: sha512-/Ib/kloefDy+N0iRTxIUzyGcdW9lzlnca2Jsa5w73bs3npXjg+WInmiX6VY13mIb6SykkthYX/U5t0ukryGqBw== 977 | /normalize-path/3.0.0: 978 | dev: true 979 | engines: 980 | node: '>=0.10.0' 981 | resolution: 982 | integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== 983 | /nwsapi/2.2.10: 984 | dev: false 985 | resolution: 986 | integrity: sha512-QK0sRs7MKv0tKe1+5uZIQk/C8XGza4DAnztJG8iD+TpJIORARrCxczA738awHrZoHeTjSSoHqao2teO0dC/gFQ== 987 | /object-inspect/1.13.1: 988 | dev: false 989 | resolution: 990 | integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== 991 | /on-finished/2.4.1: 992 | dependencies: 993 | ee-first: 1.1.1 994 | dev: false 995 | engines: 996 | node: '>= 0.8' 997 | resolution: 998 | integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== 999 | /parse5/7.1.2: 1000 | dependencies: 1001 | entities: 4.5.0 1002 | dev: false 1003 | resolution: 1004 | integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw== 1005 | /parseurl/1.3.3: 1006 | dev: false 1007 | engines: 1008 | node: '>= 0.8' 1009 | resolution: 1010 | integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== 1011 | /path-key/3.1.1: 1012 | dev: false 1013 | engines: 1014 | node: '>=8' 1015 | resolution: 1016 | integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== 1017 | /path-scurry/1.11.1: 1018 | dependencies: 1019 | lru-cache: 10.2.2 1020 | minipass: 7.1.2 1021 | dev: false 1022 | engines: 1023 | node: '>=16 || 14 >=14.18' 1024 | resolution: 1025 | integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA== 1026 | /path-to-regexp/0.1.7: 1027 | dev: false 1028 | resolution: 1029 | integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== 1030 | /picomatch/2.3.1: 1031 | dev: true 1032 | engines: 1033 | node: '>=8.6' 1034 | resolution: 1035 | integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== 1036 | /proxy-addr/2.0.7: 1037 | dependencies: 1038 | forwarded: 0.2.0 1039 | ipaddr.js: 1.9.1 1040 | dev: false 1041 | engines: 1042 | node: '>= 0.10' 1043 | resolution: 1044 | integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== 1045 | /psl/1.9.0: 1046 | dev: false 1047 | resolution: 1048 | integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== 1049 | /pstree.remy/1.1.8: 1050 | dev: true 1051 | resolution: 1052 | integrity: sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w== 1053 | /punycode/2.3.1: 1054 | dev: false 1055 | engines: 1056 | node: '>=6' 1057 | resolution: 1058 | integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== 1059 | /qs/6.11.0: 1060 | dependencies: 1061 | side-channel: 1.0.6 1062 | dev: false 1063 | engines: 1064 | node: '>=0.6' 1065 | resolution: 1066 | integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== 1067 | /querystringify/2.2.0: 1068 | dev: false 1069 | resolution: 1070 | integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== 1071 | /range-parser/1.2.1: 1072 | dev: false 1073 | engines: 1074 | node: '>= 0.6' 1075 | resolution: 1076 | integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== 1077 | /raw-body/2.5.2: 1078 | dependencies: 1079 | bytes: 3.1.2 1080 | http-errors: 2.0.0 1081 | iconv-lite: 0.4.24 1082 | unpipe: 1.0.0 1083 | dev: false 1084 | engines: 1085 | node: '>= 0.8' 1086 | resolution: 1087 | integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== 1088 | /readdirp/3.6.0: 1089 | dependencies: 1090 | picomatch: 2.3.1 1091 | dev: true 1092 | engines: 1093 | node: '>=8.10.0' 1094 | resolution: 1095 | integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== 1096 | /requires-port/1.0.0: 1097 | dev: false 1098 | resolution: 1099 | integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== 1100 | /rrweb-cssom/0.6.0: 1101 | dev: false 1102 | resolution: 1103 | integrity: sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw== 1104 | /rrweb-cssom/0.7.0: 1105 | dev: false 1106 | resolution: 1107 | integrity: sha512-KlSv0pm9kgQSRxXEMgtivPJ4h826YHsuob8pSHcfSZsSXGtvpEAie8S0AnXuObEJ7nhikOb4ahwxDm0H2yW17g== 1108 | /safe-buffer/5.2.1: 1109 | dev: false 1110 | resolution: 1111 | integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== 1112 | /safer-buffer/2.1.2: 1113 | dev: false 1114 | resolution: 1115 | integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== 1116 | /saxes/6.0.0: 1117 | dependencies: 1118 | xmlchars: 2.2.0 1119 | dev: false 1120 | engines: 1121 | node: '>=v12.22.7' 1122 | resolution: 1123 | integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA== 1124 | /semver/7.6.2: 1125 | dev: true 1126 | engines: 1127 | node: '>=10' 1128 | hasBin: true 1129 | resolution: 1130 | integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w== 1131 | /send/0.18.0: 1132 | dependencies: 1133 | debug: 2.6.9 1134 | depd: 2.0.0 1135 | destroy: 1.2.0 1136 | encodeurl: 1.0.2 1137 | escape-html: 1.0.3 1138 | etag: 1.8.1 1139 | fresh: 0.5.2 1140 | http-errors: 2.0.0 1141 | mime: 1.6.0 1142 | ms: 2.1.3 1143 | on-finished: 2.4.1 1144 | range-parser: 1.2.1 1145 | statuses: 2.0.1 1146 | dev: false 1147 | engines: 1148 | node: '>= 0.8.0' 1149 | resolution: 1150 | integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== 1151 | /serve-static/1.15.0: 1152 | dependencies: 1153 | encodeurl: 1.0.2 1154 | escape-html: 1.0.3 1155 | parseurl: 1.3.3 1156 | send: 0.18.0 1157 | dev: false 1158 | engines: 1159 | node: '>= 0.8.0' 1160 | resolution: 1161 | integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== 1162 | /serverless-http/3.2.0: 1163 | dev: false 1164 | engines: 1165 | node: '>=12.0' 1166 | resolution: 1167 | integrity: sha512-QvSyZXljRLIGqwcJ4xsKJXwkZnAVkse1OajepxfjkBXV0BMvRS5R546Z4kCBI8IygDzkQY0foNPC/rnipaE9pQ== 1168 | /set-function-length/1.2.2: 1169 | dependencies: 1170 | define-data-property: 1.1.4 1171 | es-errors: 1.3.0 1172 | function-bind: 1.1.2 1173 | get-intrinsic: 1.2.4 1174 | gopd: 1.0.1 1175 | has-property-descriptors: 1.0.2 1176 | dev: false 1177 | engines: 1178 | node: '>= 0.4' 1179 | resolution: 1180 | integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== 1181 | /setprototypeof/1.2.0: 1182 | dev: false 1183 | resolution: 1184 | integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== 1185 | /shebang-command/2.0.0: 1186 | dependencies: 1187 | shebang-regex: 3.0.0 1188 | dev: false 1189 | engines: 1190 | node: '>=8' 1191 | resolution: 1192 | integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== 1193 | /shebang-regex/3.0.0: 1194 | dev: false 1195 | engines: 1196 | node: '>=8' 1197 | resolution: 1198 | integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== 1199 | /side-channel/1.0.6: 1200 | dependencies: 1201 | call-bind: 1.0.7 1202 | es-errors: 1.3.0 1203 | get-intrinsic: 1.2.4 1204 | object-inspect: 1.13.1 1205 | dev: false 1206 | engines: 1207 | node: '>= 0.4' 1208 | resolution: 1209 | integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA== 1210 | /signal-exit/4.1.0: 1211 | dev: false 1212 | engines: 1213 | node: '>=14' 1214 | resolution: 1215 | integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== 1216 | /simple-update-notifier/2.0.0: 1217 | dependencies: 1218 | semver: 7.6.2 1219 | dev: true 1220 | engines: 1221 | node: '>=10' 1222 | resolution: 1223 | integrity: sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w== 1224 | /source-map/0.6.1: 1225 | dev: false 1226 | engines: 1227 | node: '>=0.10.0' 1228 | resolution: 1229 | integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== 1230 | /statuses/2.0.1: 1231 | dev: false 1232 | engines: 1233 | node: '>= 0.8' 1234 | resolution: 1235 | integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== 1236 | /string-width/4.2.3: 1237 | dependencies: 1238 | emoji-regex: 8.0.0 1239 | is-fullwidth-code-point: 3.0.0 1240 | strip-ansi: 6.0.1 1241 | dev: false 1242 | engines: 1243 | node: '>=8' 1244 | resolution: 1245 | integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== 1246 | /string-width/5.1.2: 1247 | dependencies: 1248 | eastasianwidth: 0.2.0 1249 | emoji-regex: 9.2.2 1250 | strip-ansi: 7.1.0 1251 | dev: false 1252 | engines: 1253 | node: '>=12' 1254 | resolution: 1255 | integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== 1256 | /strip-ansi/6.0.1: 1257 | dependencies: 1258 | ansi-regex: 5.0.1 1259 | dev: false 1260 | engines: 1261 | node: '>=8' 1262 | resolution: 1263 | integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== 1264 | /strip-ansi/7.1.0: 1265 | dependencies: 1266 | ansi-regex: 6.0.1 1267 | dev: false 1268 | engines: 1269 | node: '>=12' 1270 | resolution: 1271 | integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== 1272 | /supports-color/5.5.0: 1273 | dependencies: 1274 | has-flag: 3.0.0 1275 | dev: true 1276 | engines: 1277 | node: '>=4' 1278 | resolution: 1279 | integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== 1280 | /symbol-tree/3.2.4: 1281 | dev: false 1282 | resolution: 1283 | integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== 1284 | /to-regex-range/5.0.1: 1285 | dependencies: 1286 | is-number: 7.0.0 1287 | dev: true 1288 | engines: 1289 | node: '>=8.0' 1290 | resolution: 1291 | integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== 1292 | /toidentifier/1.0.1: 1293 | dev: false 1294 | engines: 1295 | node: '>=0.6' 1296 | resolution: 1297 | integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== 1298 | /touch/3.1.1: 1299 | dev: true 1300 | hasBin: true 1301 | resolution: 1302 | integrity: sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA== 1303 | /tough-cookie/4.1.4: 1304 | dependencies: 1305 | psl: 1.9.0 1306 | punycode: 2.3.1 1307 | universalify: 0.2.0 1308 | url-parse: 1.5.10 1309 | dev: false 1310 | engines: 1311 | node: '>=6' 1312 | resolution: 1313 | integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag== 1314 | /tr46/5.0.0: 1315 | dependencies: 1316 | punycode: 2.3.1 1317 | dev: false 1318 | engines: 1319 | node: '>=18' 1320 | resolution: 1321 | integrity: sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g== 1322 | /type-is/1.6.18: 1323 | dependencies: 1324 | media-typer: 0.3.0 1325 | mime-types: 2.1.35 1326 | dev: false 1327 | engines: 1328 | node: '>= 0.6' 1329 | resolution: 1330 | integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== 1331 | /uglify-js/3.17.4: 1332 | dev: false 1333 | engines: 1334 | node: '>=0.8.0' 1335 | hasBin: true 1336 | optional: true 1337 | resolution: 1338 | integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g== 1339 | /undefsafe/2.0.5: 1340 | dev: true 1341 | resolution: 1342 | integrity: sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA== 1343 | /universalify/0.2.0: 1344 | dev: false 1345 | engines: 1346 | node: '>= 4.0.0' 1347 | resolution: 1348 | integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg== 1349 | /unpipe/1.0.0: 1350 | dev: false 1351 | engines: 1352 | node: '>= 0.8' 1353 | resolution: 1354 | integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== 1355 | /url-parse/1.5.10: 1356 | dependencies: 1357 | querystringify: 2.2.0 1358 | requires-port: 1.0.0 1359 | dev: false 1360 | resolution: 1361 | integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ== 1362 | /urlpattern-polyfill/8.0.2: 1363 | dev: false 1364 | resolution: 1365 | integrity: sha512-Qp95D4TPJl1kC9SKigDcqgyM2VDVO4RiJc2d4qe5GrYm+zbIQCWWKAFaJNQ4BhdFeDGwBmAxqJBwWSJDb9T3BQ== 1366 | /utils-merge/1.0.1: 1367 | dev: false 1368 | engines: 1369 | node: '>= 0.4.0' 1370 | resolution: 1371 | integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== 1372 | /vary/1.1.2: 1373 | dev: false 1374 | engines: 1375 | node: '>= 0.8' 1376 | resolution: 1377 | integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== 1378 | /w3c-xmlserializer/5.0.0: 1379 | dependencies: 1380 | xml-name-validator: 5.0.0 1381 | dev: false 1382 | engines: 1383 | node: '>=18' 1384 | resolution: 1385 | integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA== 1386 | /webidl-conversions/7.0.0: 1387 | dev: false 1388 | engines: 1389 | node: '>=12' 1390 | resolution: 1391 | integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g== 1392 | /whatwg-encoding/3.1.1: 1393 | dependencies: 1394 | iconv-lite: 0.6.3 1395 | dev: false 1396 | engines: 1397 | node: '>=18' 1398 | resolution: 1399 | integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ== 1400 | /whatwg-mimetype/4.0.0: 1401 | dev: false 1402 | engines: 1403 | node: '>=18' 1404 | resolution: 1405 | integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg== 1406 | /whatwg-url/14.0.0: 1407 | dependencies: 1408 | tr46: 5.0.0 1409 | webidl-conversions: 7.0.0 1410 | dev: false 1411 | engines: 1412 | node: '>=18' 1413 | resolution: 1414 | integrity: sha512-1lfMEm2IEr7RIV+f4lUNPOqfFL+pO+Xw3fJSqmjX9AbXcXcYOkCe1P6+9VBZB6n94af16NfZf+sSk0JCBZC9aw== 1415 | /which/2.0.2: 1416 | dependencies: 1417 | isexe: 2.0.0 1418 | dev: false 1419 | engines: 1420 | node: '>= 8' 1421 | hasBin: true 1422 | resolution: 1423 | integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== 1424 | /wordwrap/1.0.0: 1425 | dev: false 1426 | resolution: 1427 | integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== 1428 | /wrap-ansi/7.0.0: 1429 | dependencies: 1430 | ansi-styles: 4.3.0 1431 | string-width: 4.2.3 1432 | strip-ansi: 6.0.1 1433 | dev: false 1434 | engines: 1435 | node: '>=10' 1436 | resolution: 1437 | integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== 1438 | /wrap-ansi/8.1.0: 1439 | dependencies: 1440 | ansi-styles: 6.2.1 1441 | string-width: 5.1.2 1442 | strip-ansi: 7.1.0 1443 | dev: false 1444 | engines: 1445 | node: '>=12' 1446 | resolution: 1447 | integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== 1448 | /ws/8.17.0: 1449 | dev: false 1450 | engines: 1451 | node: '>=10.0.0' 1452 | peerDependencies: 1453 | bufferutil: ^4.0.1 1454 | utf-8-validate: '>=5.0.2' 1455 | resolution: 1456 | integrity: sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow== 1457 | /xml-name-validator/5.0.0: 1458 | dev: false 1459 | engines: 1460 | node: '>=18' 1461 | resolution: 1462 | integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg== 1463 | /xmlchars/2.2.0: 1464 | dev: false 1465 | resolution: 1466 | integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== 1467 | registry: 'https://registry.npmjs.org/' 1468 | shrinkwrapMinorVersion: 9 1469 | shrinkwrapVersion: 3 1470 | specifiers: 1471 | '@netlify/functions': ^2.7.0 1472 | crypto: ^1.0.1 1473 | express: ^4.18.2 1474 | express-handlebars: ^7.1.2 1475 | jsdom: ^24.1.0 1476 | nodemon: ^3.1.0 1477 | serverless-http: ^3.2.0 1478 | --------------------------------------------------------------------------------