From 3d9f7d2052c4cefc8ad3f14c20fca83a4aca6ca3 Mon Sep 17 00:00:00 2001 From: Sebastian Slettebakken <43045439+sebastas@users.noreply.github.com> Date: Mon, 10 Nov 2025 23:52:12 +0100 Subject: [PATCH] feat: initialize Svelte frontend with Vite and TypeScript - Added package.json for project configuration and dependencies. - Included images for the application (teh-jokur.png and vite.svg). - Created main application structure with App.svelte, CounterCard.svelte, and AddCounterCard.svelte components. - Implemented functionality for adding, editing, incrementing, and decrementing counters. - Added clickOutside utility for handling outside clicks in editing mode. - Configured TypeScript with appropriate tsconfig files for app and node. - Set up Vite configuration for building the application. - Added global styles in app.css for consistent UI design. --- .gitignore | 33 + backend/index.js | 108 ++ backend/package-lock.json | 2353 ++++++++++++++++++++++++++++ backend/package.json | 18 + frontend/README.md | 47 + frontend/index.html | 16 + frontend/package-lock.json | 1461 +++++++++++++++++ frontend/package.json | 21 + frontend/public/teh-jokur.png | Bin 0 -> 39785 bytes frontend/public/vite.svg | 1 + frontend/src/AddCounterCard.svelte | 47 + frontend/src/App.svelte | 163 ++ frontend/src/CounterCard.svelte | 107 ++ frontend/src/app.css | 183 +++ frontend/src/assets/svelte.svg | 1 + frontend/src/clickOutside.ts | 14 + frontend/src/main.ts | 10 + frontend/src/svelte.d.ts | 4 + frontend/svelte.config.js | 8 + frontend/tsconfig.app.json | 22 + frontend/tsconfig.json | 7 + frontend/tsconfig.node.json | 27 + frontend/vite.config.ts | 7 + 23 files changed, 4658 insertions(+) create mode 100644 .gitignore create mode 100644 backend/index.js create mode 100644 backend/package-lock.json create mode 100644 backend/package.json create mode 100644 frontend/README.md create mode 100644 frontend/index.html create mode 100644 frontend/package-lock.json create mode 100644 frontend/package.json create mode 100644 frontend/public/teh-jokur.png create mode 100644 frontend/public/vite.svg create mode 100644 frontend/src/AddCounterCard.svelte create mode 100644 frontend/src/App.svelte create mode 100644 frontend/src/CounterCard.svelte create mode 100644 frontend/src/app.css create mode 100644 frontend/src/assets/svelte.svg create mode 100644 frontend/src/clickOutside.ts create mode 100644 frontend/src/main.ts create mode 100644 frontend/src/svelte.d.ts create mode 100644 frontend/svelte.config.js create mode 100644 frontend/tsconfig.app.json create mode 100644 frontend/tsconfig.json create mode 100644 frontend/tsconfig.node.json create mode 100644 frontend/vite.config.ts diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..69b8d5f --- /dev/null +++ b/.gitignore @@ -0,0 +1,33 @@ +# Node dependencies +node_modules/ +frontend/node_modules/ +backend/node_modules/ + +# Build output +dist/ +frontend/dist/ +backend/dist/ + +# SQLite database and uploads +backend/db.sqlite +backend/uploads/ + +# Logs +logs/ +*.log +npm-debug.log* +yarn-debug.log* +pnpm-debug.log* + +# Editor directories and files +.vscode/ +.idea/ +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? + +# Environment files (if any) +.env diff --git a/backend/index.js b/backend/index.js new file mode 100644 index 0000000..1dedad5 --- /dev/null +++ b/backend/index.js @@ -0,0 +1,108 @@ +const express = require('express'); +const sqlite3 = require('sqlite3').verbose(); +const cors = require('cors'); +const path = require('path'); +const multer = require('multer'); +const fs = require('fs'); + +const app = express(); +const dbPath = path.join(__dirname, 'db.sqlite'); +const db = new sqlite3.Database(dbPath); +const upload = multer({ dest: path.join(__dirname, 'uploads/') }); + +app.use(cors()); +app.use(express.json()); +app.use('/uploads', express.static(path.join(__dirname, 'uploads'))); + +// Initialize database and ensure counters table exists +db.serialize(() => { + db.run(`CREATE TABLE IF NOT EXISTS counters ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + value INTEGER NOT NULL DEFAULT 0, + name TEXT NOT NULL DEFAULT 'Counter', + image TEXT + )`); +}); + +// Get all counters +app.get('/api/counters', (req, res) => { + db.all('SELECT * FROM counters', (err, rows) => { + if (err) return res.status(500).json({ error: err.message }); + // Ensure id and value are numbers + const counters = rows.map(row => ({ + ...row, + id: Number(row.id), + value: Number(row.value) + })); + res.json(counters); + }); +}); + + +// Create a new counter with image +app.post('/api/counters', upload.single('image'), (req, res) => { + const { name = 'Counter', value = 0 } = req.body; + const image = req.file ? `/uploads/${req.file.filename}` : null; + db.run('INSERT INTO counters (name, value, image) VALUES (?, ?, ?)', [name, value, image], function (err) { + if (err) return res.status(500).json({ error: err.message }); + res.json({ id: Number(this.lastID), name, value: Number(value), image }); + }); +}); + +// Update a counter (now supports image upload) +app.put('/api/counters/:id', upload.single('image'), (req, res) => { + const { name, value } = req.body; + const id = req.params.id; + let image = null; + + // If a new image is uploaded, get its path + if (req.file) { + image = `/uploads/${req.file.filename}`; + // Optionally, delete the old image file + db.get('SELECT image FROM counters WHERE id = ?', [id], (err, row) => { + if (row && row.image) { + const oldImagePath = path.join(__dirname, '..', row.image); + fs.unlink(oldImagePath, () => { }); // Ignore errors + } + }); + } + + // Build dynamic SQL and params + let fields = []; + let params = []; + if (name !== undefined) { fields.push('name = ?'); params.push(name); } + if (value !== undefined) { fields.push('value = ?'); params.push(value); } + if (image !== null) { fields.push('image = ?'); params.push(image); } + if (fields.length === 0) return res.status(400).json({ error: 'No valid fields to update.' }); + + params.push(id); + const sql = `UPDATE counters SET ${fields.join(', ')} WHERE id = ?`; + + db.run(sql, params, function (err) { + if (err) return res.status(500).json({ error: err.message }); + res.json({ updated: this.changes }); + }); +}); + +// Delete a counter +app.delete('/api/counters/:id', (req, res) => { + db.run('DELETE FROM counters WHERE id = ?', [req.params.id], function (err) { + if (err) return res.status(500).json({ error: err.message }); + res.json({ deleted: this.changes }); + }); +}); + +// Serve static frontend files +const clientBuildPath = path.join(__dirname, '..', 'frontend', 'dist'); +app.use(express.static(clientBuildPath)); + +// For SPA: serve index.html for any unknown route (after API and uploads) +// app.get('*', (req, res) => { +// if (req.path.startsWith('/api') || req.path.startsWith('/uploads')) return res.status(404).end(); +// res.sendFile(path.join(clientBuildPath, 'index.html')); +// }); + +const PORT = 3000; +app.listen(PORT, () => { + console.log(`API server running on http://localhost:${PORT}`); +}); \ No newline at end of file diff --git a/backend/package-lock.json b/backend/package-lock.json new file mode 100644 index 0000000..c8fe8ba --- /dev/null +++ b/backend/package-lock.json @@ -0,0 +1,2353 @@ +{ + "name": "server", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "server", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "cors": "^2.8.5", + "express": "^5.1.0", + "multer": "^2.0.2", + "sqlite3": "^5.1.7" + } + }, + "node_modules/@gar/promisify": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", + "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", + "license": "MIT", + "optional": true + }, + "node_modules/@npmcli/fs": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", + "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", + "license": "ISC", + "optional": true, + "dependencies": { + "@gar/promisify": "^1.0.1", + "semver": "^7.3.5" + } + }, + "node_modules/@npmcli/move-file": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", + "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", + "deprecated": "This functionality has been moved to @npmcli/fs", + "license": "MIT", + "optional": true, + "dependencies": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "license": "ISC", + "optional": true + }, + "node_modules/accepts": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz", + "integrity": "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==", + "license": "MIT", + "dependencies": { + "mime-types": "^3.0.0", + "negotiator": "^1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "license": "MIT", + "optional": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/agentkeepalive": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.6.0.tgz", + "integrity": "sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==", + "license": "MIT", + "optional": true, + "dependencies": { + "humanize-ms": "^1.2.1" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "license": "MIT", + "optional": true, + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/append-field": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz", + "integrity": "sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw==", + "license": "MIT" + }, + "node_modules/aproba": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.1.0.tgz", + "integrity": "sha512-tLIEcj5GuR2RSTnxNKdkK0dJ/GrC7P38sUkiDmDuHfsHmbagTFAxDVIBltoklXEVIQ/f14IL8IMJ5pn9Hez1Ew==", + "license": "ISC", + "optional": true + }, + "node_modules/are-we-there-yet": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", + "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", + "deprecated": "This package is no longer supported.", + "license": "ISC", + "optional": true, + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT", + "optional": true + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "license": "MIT", + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "license": "MIT", + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/body-parser": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.2.0.tgz", + "integrity": "sha512-02qvAaxv8tp7fBa/mw1ga98OGm+eCbqzJOKoRt70sLmfEEi+jyBYVTDGfCL/k06/4EMk/z01gCe7HoCH/f2LTg==", + "license": "MIT", + "dependencies": { + "bytes": "^3.1.2", + "content-type": "^1.0.5", + "debug": "^4.4.0", + "http-errors": "^2.0.0", + "iconv-lite": "^0.6.3", + "on-finished": "^2.4.1", + "qs": "^6.14.0", + "raw-body": "^3.0.0", + "type-is": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "license": "MIT", + "optional": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "license": "MIT" + }, + "node_modules/busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "dependencies": { + "streamsearch": "^1.1.0" + }, + "engines": { + "node": ">=10.16.0" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cacache": { + "version": "15.3.0", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", + "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", + "license": "ISC", + "optional": true, + "dependencies": { + "@npmcli/fs": "^1.0.0", + "@npmcli/move-file": "^1.0.1", + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "infer-owner": "^1.0.4", + "lru-cache": "^6.0.0", + "minipass": "^3.1.1", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.1", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "license": "ISC", + "optional": true, + "bin": { + "color-support": "bin.js" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "license": "MIT", + "optional": true + }, + "node_modules/concat-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", + "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", + "engines": [ + "node >= 6.0" + ], + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.0.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", + "license": "ISC", + "optional": true + }, + "node_modules/content-disposition": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.0.0.tgz", + "integrity": "sha512-Au9nRL8VNUut/XSzbQA38+M78dzP4D+eqg3gfJHMIHHYa3bg067xj1KxMUWj+VULbiZMowKngFFbKczUrNJ1mg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz", + "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==", + "license": "MIT", + "engines": { + "node": ">=6.6.0" + } + }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "license": "MIT", + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "license": "MIT", + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "license": "MIT", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", + "license": "MIT", + "optional": true + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "license": "MIT" + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT", + "optional": true + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "license": "MIT", + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", + "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", + "license": "MIT", + "optional": true + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "license": "MIT" + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/expand-template": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", + "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", + "license": "(MIT OR WTFPL)", + "engines": { + "node": ">=6" + } + }, + "node_modules/express": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/express/-/express-5.1.0.tgz", + "integrity": "sha512-DT9ck5YIRU+8GYzzU5kT3eHGA5iL+1Zd0EutOmTE9Dtk+Tvuzd23VBU+ec7HPNSTxXYO55gPV/hq4pSBJDjFpA==", + "license": "MIT", + "dependencies": { + "accepts": "^2.0.0", + "body-parser": "^2.2.0", + "content-disposition": "^1.0.0", + "content-type": "^1.0.5", + "cookie": "^0.7.1", + "cookie-signature": "^1.2.1", + "debug": "^4.4.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "finalhandler": "^2.1.0", + "fresh": "^2.0.0", + "http-errors": "^2.0.0", + "merge-descriptors": "^2.0.0", + "mime-types": "^3.0.0", + "on-finished": "^2.4.1", + "once": "^1.4.0", + "parseurl": "^1.3.3", + "proxy-addr": "^2.0.7", + "qs": "^6.14.0", + "range-parser": "^1.2.1", + "router": "^2.2.0", + "send": "^1.1.0", + "serve-static": "^2.2.0", + "statuses": "^2.0.1", + "type-is": "^2.0.1", + "vary": "^1.1.2" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "license": "MIT" + }, + "node_modules/finalhandler": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.0.tgz", + "integrity": "sha512-/t88Ty3d5JWQbWYgaOGCCYfXRwV1+be02WqYYlL6h0lEiUAMPM8o8qKGO01YIkOHzka2up08wvgYD0mDiI+q3Q==", + "license": "MIT", + "dependencies": { + "debug": "^4.4.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "on-finished": "^2.4.1", + "parseurl": "^1.3.3", + "statuses": "^2.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", + "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "license": "MIT" + }, + "node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "license": "ISC", + "optional": true + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gauge": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", + "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", + "deprecated": "This package is no longer supported.", + "license": "ISC", + "optional": true, + "dependencies": { + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.3", + "console-control-strings": "^1.1.0", + "has-unicode": "^2.0.1", + "signal-exit": "^3.0.7", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.5" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/github-from-package": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", + "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==", + "license": "MIT" + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "license": "ISC", + "optional": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "license": "ISC", + "optional": true + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", + "license": "ISC", + "optional": true + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz", + "integrity": "sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==", + "license": "BSD-2-Clause", + "optional": true + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "license": "MIT", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-errors/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "license": "MIT", + "optional": true, + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "license": "MIT", + "optional": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", + "license": "MIT", + "optional": true, + "dependencies": { + "ms": "^2.0.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "license": "ISC", + "optional": true + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "license": "ISC", + "optional": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "license": "ISC" + }, + "node_modules/ip-address": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.1.0.tgz", + "integrity": "sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 12" + } + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-lambda": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", + "license": "MIT", + "optional": true + }, + "node_modules/is-promise": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", + "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "license": "ISC", + "optional": true + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "license": "ISC", + "optional": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-fetch-happen": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", + "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", + "license": "ISC", + "optional": true, + "dependencies": { + "agentkeepalive": "^4.1.3", + "cacache": "^15.2.0", + "http-cache-semantics": "^4.1.0", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^6.0.0", + "minipass": "^3.1.3", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^1.3.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.2", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^6.0.0", + "ssri": "^8.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/make-fetch-happen/node_modules/negotiator": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", + "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/media-typer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz", + "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/merge-descriptors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-2.0.0.tgz", + "integrity": "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.1.tgz", + "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==", + "license": "MIT", + "dependencies": { + "mime-db": "^1.54.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", + "optional": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "license": "ISC", + "optional": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-fetch": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", + "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", + "license": "MIT", + "optional": true, + "dependencies": { + "minipass": "^3.1.0", + "minipass-sized": "^1.0.3", + "minizlib": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "optionalDependencies": { + "encoding": "^0.1.12" + } + }, + "node_modules/minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "license": "ISC", + "optional": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "license": "ISC", + "optional": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-sized": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "license": "ISC", + "optional": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "license": "MIT", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", + "license": "MIT" + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/multer": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/multer/-/multer-2.0.2.tgz", + "integrity": "sha512-u7f2xaZ/UG8oLXHvtF/oWTRvT44p9ecwBBqTwgJVq0+4BW1g8OW01TyMEGWBHbyMOYVHXslaut7qEQ1meATXgw==", + "license": "MIT", + "dependencies": { + "append-field": "^1.0.0", + "busboy": "^1.6.0", + "concat-stream": "^2.0.0", + "mkdirp": "^0.5.6", + "object-assign": "^4.1.1", + "type-is": "^1.6.18", + "xtend": "^4.0.2" + }, + "engines": { + "node": ">= 10.16.0" + } + }, + "node_modules/multer/node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/multer/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/multer/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/multer/node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/multer/node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "license": "MIT", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/napi-build-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-2.0.0.tgz", + "integrity": "sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==", + "license": "MIT" + }, + "node_modules/negotiator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", + "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/node-abi": { + "version": "3.80.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.80.0.tgz", + "integrity": "sha512-LyPuZJcI9HVwzXK1GPxWNzrr+vr8Hp/3UqlmWxxh8p54U1ZbclOqbSog9lWHaCX+dBaiGi6n/hIX+mKu74GmPA==", + "license": "MIT", + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/node-addon-api": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", + "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", + "license": "MIT" + }, + "node_modules/node-gyp": { + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz", + "integrity": "sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==", + "license": "MIT", + "optional": true, + "dependencies": { + "env-paths": "^2.2.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^9.1.0", + "nopt": "^5.0.0", + "npmlog": "^6.0.0", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.2", + "which": "^2.0.2" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": ">= 10.12.0" + } + }, + "node_modules/nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "license": "ISC", + "optional": true, + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/npmlog": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", + "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", + "deprecated": "This package is no longer supported.", + "license": "ISC", + "optional": true, + "dependencies": { + "are-we-there-yet": "^3.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^4.0.3", + "set-blocking": "^2.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "license": "MIT", + "optional": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-to-regexp": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.3.0.tgz", + "integrity": "sha512-7jdwVIRtsP8MYpdXSwOS0YdD0Du+qOoF/AEPIt88PcCFrZCzx41oxku1jD88hZBwbNUIEfpqvuhjFaMAqMTWnA==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/prebuild-install": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.3.tgz", + "integrity": "sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==", + "license": "MIT", + "dependencies": { + "detect-libc": "^2.0.0", + "expand-template": "^2.0.3", + "github-from-package": "0.0.0", + "minimist": "^1.2.3", + "mkdirp-classic": "^0.5.3", + "napi-build-utils": "^2.0.0", + "node-abi": "^3.3.0", + "pump": "^3.0.0", + "rc": "^1.2.7", + "simple-get": "^4.0.0", + "tar-fs": "^2.0.0", + "tunnel-agent": "^0.6.0" + }, + "bin": { + "prebuild-install": "bin.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", + "license": "ISC", + "optional": true + }, + "node_modules/promise-retry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "license": "MIT", + "optional": true, + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/pump": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.3.tgz", + "integrity": "sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==", + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/qs": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz", + "integrity": "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.1.tgz", + "integrity": "sha512-9G8cA+tuMS75+6G/TzW8OtLzmBDMo8p1JRxN5AZ+LAp8uxGA8V8GZm4GQ4/N5QNQEnLmg6SS7wyuSmbKepiKqA==", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.7.0", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/raw-body/node_modules/iconv-lite": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.0.tgz", + "integrity": "sha512-cf6L2Ds3h57VVmkZe+Pn+5APsT7FpqJtEhhieDCvrE2MK5Qk9MyffgQyuxQTm6BChfeZNtcOLHp9IcWRVcIcBQ==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "license": "ISC", + "optional": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/router": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/router/-/router-2.2.0.tgz", + "integrity": "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==", + "license": "MIT", + "dependencies": { + "debug": "^4.4.0", + "depd": "^2.0.0", + "is-promise": "^4.0.0", + "parseurl": "^1.3.3", + "path-to-regexp": "^8.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" + }, + "node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/send": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/send/-/send-1.2.0.tgz", + "integrity": "sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==", + "license": "MIT", + "dependencies": { + "debug": "^4.3.5", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "fresh": "^2.0.0", + "http-errors": "^2.0.0", + "mime-types": "^3.0.1", + "ms": "^2.1.3", + "on-finished": "^2.4.1", + "range-parser": "^1.2.1", + "statuses": "^2.0.1" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/serve-static": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.0.tgz", + "integrity": "sha512-61g9pCh0Vnh7IutZjtLGGpTA355+OPn2TyDv/6ivP2h/AdAVX9azsoxmg2/M6nZeQZNYBEwIcsne1mJd9oQItQ==", + "license": "MIT", + "dependencies": { + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "parseurl": "^1.3.3", + "send": "^1.2.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "license": "ISC", + "optional": true + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" + }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "license": "ISC", + "optional": true + }, + "node_modules/simple-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/simple-get": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz", + "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "decompress-response": "^6.0.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + } + }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks": { + "version": "2.8.7", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.7.tgz", + "integrity": "sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==", + "license": "MIT", + "optional": true, + "dependencies": { + "ip-address": "^10.0.1", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks-proxy-agent": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz", + "integrity": "sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==", + "license": "MIT", + "optional": true, + "dependencies": { + "agent-base": "^6.0.2", + "debug": "^4.3.3", + "socks": "^2.6.2" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/sqlite3": { + "version": "5.1.7", + "resolved": "https://registry.npmjs.org/sqlite3/-/sqlite3-5.1.7.tgz", + "integrity": "sha512-GGIyOiFaG+TUra3JIfkI/zGP8yZYLPQ0pl1bH+ODjiX57sPhrLU5sQJn1y9bDKZUFYkX1crlrPfSYt0BKKdkog==", + "hasInstallScript": true, + "license": "BSD-3-Clause", + "dependencies": { + "bindings": "^1.5.0", + "node-addon-api": "^7.0.0", + "prebuild-install": "^7.1.1", + "tar": "^6.1.11" + }, + "optionalDependencies": { + "node-gyp": "8.x" + }, + "peerDependencies": { + "node-gyp": "8.x" + }, + "peerDependenciesMeta": { + "node-gyp": { + "optional": true + } + } + }, + "node_modules/ssri": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "license": "ISC", + "optional": true, + "dependencies": { + "minipass": "^3.1.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/statuses": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "optional": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "optional": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tar": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", + "license": "ISC", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar-fs": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.4.tgz", + "integrity": "sha512-mDAjwmZdh7LTT6pNleZ05Yt65HC3E+NiQzl672vQG38jIrehtJk/J3mNwIg+vShQPcLF/LV7CMnDW6vjj6sfYQ==", + "license": "MIT", + "dependencies": { + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.1.4" + } + }, + "node_modules/tar-fs/node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "license": "ISC" + }, + "node_modules/tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "license": "MIT", + "dependencies": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "license": "ISC", + "engines": { + "node": ">=8" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "license": "Apache-2.0", + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/type-is": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.0.1.tgz", + "integrity": "sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==", + "license": "MIT", + "dependencies": { + "content-type": "^1.0.5", + "media-typer": "^1.1.0", + "mime-types": "^3.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "license": "MIT" + }, + "node_modules/unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "license": "ISC", + "optional": true, + "dependencies": { + "unique-slug": "^2.0.0" + } + }, + "node_modules/unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "license": "ISC", + "optional": true, + "dependencies": { + "imurmurhash": "^0.1.4" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "license": "ISC", + "optional": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wide-align": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "license": "ISC", + "optional": true, + "dependencies": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "license": "ISC" + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "license": "MIT", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "license": "ISC" + } + } +} diff --git a/backend/package.json b/backend/package.json new file mode 100644 index 0000000..fd9042c --- /dev/null +++ b/backend/package.json @@ -0,0 +1,18 @@ +{ + "name": "server", + "version": "1.0.0", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [], + "author": "", + "license": "ISC", + "description": "", + "dependencies": { + "cors": "^2.8.5", + "express": "^5.1.0", + "multer": "^2.0.2", + "sqlite3": "^5.1.7" + } +} diff --git a/frontend/README.md b/frontend/README.md new file mode 100644 index 0000000..e6cd94f --- /dev/null +++ b/frontend/README.md @@ -0,0 +1,47 @@ +# Svelte + TS + Vite + +This template should help get you started developing with Svelte and TypeScript in Vite. + +## Recommended IDE Setup + +[VS Code](https://code.visualstudio.com/) + [Svelte](https://marketplace.visualstudio.com/items?itemName=svelte.svelte-vscode). + +## Need an official Svelte framework? + +Check out [SvelteKit](https://github.com/sveltejs/kit#readme), which is also powered by Vite. Deploy anywhere with its serverless-first approach and adapt to various platforms, with out of the box support for TypeScript, SCSS, and Less, and easily-added support for mdsvex, GraphQL, PostCSS, Tailwind CSS, and more. + +## Technical considerations + +**Why use this over SvelteKit?** + +- It brings its own routing solution which might not be preferable for some users. +- It is first and foremost a framework that just happens to use Vite under the hood, not a Vite app. + +This template contains as little as possible to get started with Vite + TypeScript + Svelte, while taking into account the developer experience with regards to HMR and intellisense. It demonstrates capabilities on par with the other `create-vite` templates and is a good starting point for beginners dipping their toes into a Vite + Svelte project. + +Should you later need the extended capabilities and extensibility provided by SvelteKit, the template has been structured similarly to SvelteKit so that it is easy to migrate. + +**Why `global.d.ts` instead of `compilerOptions.types` inside `jsconfig.json` or `tsconfig.json`?** + +Setting `compilerOptions.types` shuts out all other types not explicitly listed in the configuration. Using triple-slash references keeps the default TypeScript setting of accepting type information from the entire workspace, while also adding `svelte` and `vite/client` type information. + +**Why include `.vscode/extensions.json`?** + +Other templates indirectly recommend extensions via the README, but this file allows VS Code to prompt the user to install the recommended extension upon opening the project. + +**Why enable `allowJs` in the TS template?** + +While `allowJs: false` would indeed prevent the use of `.js` files in the project, it does not prevent the use of JavaScript syntax in `.svelte` files. In addition, it would force `checkJs: false`, bringing the worst of both worlds: not being able to guarantee the entire codebase is TypeScript, and also having worse typechecking for the existing JavaScript. In addition, there are valid use cases in which a mixed codebase may be relevant. + +**Why is HMR not preserving my local component state?** + +HMR state preservation comes with a number of gotchas! It has been disabled by default in both `svelte-hmr` and `@sveltejs/vite-plugin-svelte` due to its often surprising behavior. You can read the details [here](https://github.com/rixo/svelte-hmr#svelte-hmr). + +If you have state that's important to retain within a component, consider creating an external store which would not be replaced by HMR. + +```ts +// store.ts +// An extremely simple external store +import { writable } from 'svelte/store' +export default writable(0) +``` diff --git a/frontend/index.html b/frontend/index.html new file mode 100644 index 0000000..768535e --- /dev/null +++ b/frontend/index.html @@ -0,0 +1,16 @@ + + + + + + + + Tally counter + + + +
+ + + + \ No newline at end of file diff --git a/frontend/package-lock.json b/frontend/package-lock.json new file mode 100644 index 0000000..6cd1a6f --- /dev/null +++ b/frontend/package-lock.json @@ -0,0 +1,1461 @@ +{ + "name": "tally-app", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "tally-app", + "version": "0.0.0", + "devDependencies": { + "@sveltejs/vite-plugin-svelte": "^6.2.1", + "@tsconfig/svelte": "^5.0.5", + "@types/node": "^24.10.0", + "svelte": "^5.43.5", + "svelte-check": "^4.3.3", + "typescript": "~5.9.3", + "vite": "^7.2.2" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz", + "integrity": "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.12.tgz", + "integrity": "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz", + "integrity": "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.12.tgz", + "integrity": "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz", + "integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz", + "integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz", + "integrity": "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz", + "integrity": "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz", + "integrity": "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz", + "integrity": "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz", + "integrity": "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz", + "integrity": "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz", + "integrity": "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz", + "integrity": "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz", + "integrity": "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz", + "integrity": "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz", + "integrity": "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz", + "integrity": "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz", + "integrity": "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz", + "integrity": "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz", + "integrity": "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz", + "integrity": "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz", + "integrity": "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz", + "integrity": "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz", + "integrity": "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz", + "integrity": "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.53.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.53.2.tgz", + "integrity": "sha512-yDPzwsgiFO26RJA4nZo8I+xqzh7sJTZIWQOxn+/XOdPE31lAvLIYCKqjV+lNH/vxE2L2iH3plKxDCRK6i+CwhA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.53.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.53.2.tgz", + "integrity": "sha512-k8FontTxIE7b0/OGKeSN5B6j25EuppBcWM33Z19JoVT7UTXFSo3D9CdU39wGTeb29NO3XxpMNauh09B+Ibw+9g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.53.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.53.2.tgz", + "integrity": "sha512-A6s4gJpomNBtJ2yioj8bflM2oogDwzUiMl2yNJ2v9E7++sHrSrsQ29fOfn5DM/iCzpWcebNYEdXpaK4tr2RhfQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.53.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.53.2.tgz", + "integrity": "sha512-e6XqVmXlHrBlG56obu9gDRPW3O3hLxpwHpLsBJvuI8qqnsrtSZ9ERoWUXtPOkY8c78WghyPHZdmPhHLWNdAGEw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.53.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.53.2.tgz", + "integrity": "sha512-v0E9lJW8VsrwPux5Qe5CwmH/CF/2mQs6xU1MF3nmUxmZUCHazCjLgYvToOk+YuuUqLQBio1qkkREhxhc656ViA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.53.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.53.2.tgz", + "integrity": "sha512-ClAmAPx3ZCHtp6ysl4XEhWU69GUB1D+s7G9YjHGhIGCSrsg00nEGRRZHmINYxkdoJehde8VIsDC5t9C0gb6yqA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.53.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.53.2.tgz", + "integrity": "sha512-EPlb95nUsz6Dd9Qy13fI5kUPXNSljaG9FiJ4YUGU1O/Q77i5DYFW5KR8g1OzTcdZUqQQ1KdDqsTohdFVwCwjqg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.53.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.53.2.tgz", + "integrity": "sha512-BOmnVW+khAUX+YZvNfa0tGTEMVVEerOxN0pDk2E6N6DsEIa2Ctj48FOMfNDdrwinocKaC7YXUZ1pHlKpnkja/Q==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.53.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.53.2.tgz", + "integrity": "sha512-Xt2byDZ+6OVNuREgBXr4+CZDJtrVso5woFtpKdGPhpTPHcNG7D8YXeQzpNbFRxzTVqJf7kvPMCub/pcGUWgBjA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.53.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.53.2.tgz", + "integrity": "sha512-+LdZSldy/I9N8+klim/Y1HsKbJ3BbInHav5qE9Iy77dtHC/pibw1SR/fXlWyAk0ThnpRKoODwnAuSjqxFRDHUQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.53.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.53.2.tgz", + "integrity": "sha512-8ms8sjmyc1jWJS6WdNSA23rEfdjWB30LH8Wqj0Cqvv7qSHnvw6kgMMXRdop6hkmGPlyYBdRPkjJnj3KCUHV/uQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.53.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.53.2.tgz", + "integrity": "sha512-3HRQLUQbpBDMmzoxPJYd3W6vrVHOo2cVW8RUo87Xz0JPJcBLBr5kZ1pGcQAhdZgX9VV7NbGNipah1omKKe23/g==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.53.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.53.2.tgz", + "integrity": "sha512-fMjKi+ojnmIvhk34gZP94vjogXNNUKMEYs+EDaB/5TG/wUkoeua7p7VCHnE6T2Tx+iaghAqQX8teQzcvrYpaQA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.53.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.53.2.tgz", + "integrity": "sha512-XuGFGU+VwUUV5kLvoAdi0Wz5Xbh2SrjIxCtZj6Wq8MDp4bflb/+ThZsVxokM7n0pcbkEr2h5/pzqzDYI7cCgLQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.53.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.53.2.tgz", + "integrity": "sha512-w6yjZF0P+NGzWR3AXWX9zc0DNEGdtvykB03uhonSHMRa+oWA6novflo2WaJr6JZakG2ucsyb+rvhrKac6NIy+w==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.53.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.53.2.tgz", + "integrity": "sha512-yo8d6tdfdeBArzC7T/PnHd7OypfI9cbuZzPnzLJIyKYFhAQ8SvlkKtKBMbXDxe1h03Rcr7u++nFS7tqXz87Gtw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.53.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.53.2.tgz", + "integrity": "sha512-ah59c1YkCxKExPP8O9PwOvs+XRLKwh/mV+3YdKqQ5AMQ0r4M4ZDuOrpWkUaqO7fzAHdINzV9tEVu8vNw48z0lA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.53.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.53.2.tgz", + "integrity": "sha512-4VEd19Wmhr+Zy7hbUsFZ6YXEiP48hE//KPLCSVNY5RMGX2/7HZ+QkN55a3atM1C/BZCGIgqN+xrVgtdak2S9+A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.53.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.53.2.tgz", + "integrity": "sha512-IlbHFYc/pQCgew/d5fslcy1KEaYVCJ44G8pajugd8VoOEI8ODhtb/j8XMhLpwHCMB3yk2J07ctup10gpw2nyMA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.53.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.53.2.tgz", + "integrity": "sha512-lNlPEGgdUfSzdCWU176ku/dQRnA7W+Gp8d+cWv73jYrb8uT7HTVVxq62DUYxjbaByuf1Yk0RIIAbDzp+CnOTFg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.53.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.53.2.tgz", + "integrity": "sha512-S6YojNVrHybQis2lYov1sd+uj7K0Q05NxHcGktuMMdIQ2VixGwAfbJ23NnlvvVV1bdpR2m5MsNBViHJKcA4ADw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.53.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.53.2.tgz", + "integrity": "sha512-k+/Rkcyx//P6fetPoLMb8pBeqJBNGx81uuf7iljX9++yNBVRDQgD04L+SVXmXmh5ZP4/WOp4mWF0kmi06PW2tA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@sveltejs/acorn-typescript": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@sveltejs/acorn-typescript/-/acorn-typescript-1.0.6.tgz", + "integrity": "sha512-4awhxtMh4cx9blePWl10HRHj8Iivtqj+2QdDCSMDzxG+XKa9+VCNupQuCuvzEhYPzZSrX+0gC+0lHA/0fFKKQQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^8.9.0" + } + }, + "node_modules/@sveltejs/vite-plugin-svelte": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-6.2.1.tgz", + "integrity": "sha512-YZs/OSKOQAQCnJvM/P+F1URotNnYNeU3P2s4oIpzm1uFaqUEqRxUB0g5ejMjEb5Gjb9/PiBI5Ktrq4rUUF8UVQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@sveltejs/vite-plugin-svelte-inspector": "^5.0.0", + "debug": "^4.4.1", + "deepmerge": "^4.3.1", + "magic-string": "^0.30.17", + "vitefu": "^1.1.1" + }, + "engines": { + "node": "^20.19 || ^22.12 || >=24" + }, + "peerDependencies": { + "svelte": "^5.0.0", + "vite": "^6.3.0 || ^7.0.0" + } + }, + "node_modules/@sveltejs/vite-plugin-svelte-inspector": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte-inspector/-/vite-plugin-svelte-inspector-5.0.1.tgz", + "integrity": "sha512-ubWshlMk4bc8mkwWbg6vNvCeT7lGQojE3ijDh3QTR6Zr/R+GXxsGbyH4PExEPpiFmqPhYiVSVmHBjUcVc1JIrA==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.4.1" + }, + "engines": { + "node": "^20.19 || ^22.12 || >=24" + }, + "peerDependencies": { + "@sveltejs/vite-plugin-svelte": "^6.0.0-next.0", + "svelte": "^5.0.0", + "vite": "^6.3.0 || ^7.0.0" + } + }, + "node_modules/@tsconfig/svelte": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/@tsconfig/svelte/-/svelte-5.0.5.tgz", + "integrity": "sha512-48fAnUjKye38FvMiNOj0J9I/4XlQQiZlpe9xaNPfe8vy2Y1hFBt8g1yqf2EGjVvHavo4jf2lC+TQyENCr4BJBQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "24.10.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.10.0.tgz", + "integrity": "sha512-qzQZRBqkFsYyaSWXuEHc2WR9c0a0CXwiE5FWUvn7ZM+vdy1uZLfCunD38UzhuB7YN/J11ndbDBcTmOdxJo9Q7A==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "undici-types": "~7.16.0" + } + }, + "node_modules/acorn": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "dev": true, + "license": "MIT", + "peer": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/aria-query": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", + "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/axobject-query": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/esbuild": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz", + "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.12", + "@esbuild/android-arm": "0.25.12", + "@esbuild/android-arm64": "0.25.12", + "@esbuild/android-x64": "0.25.12", + "@esbuild/darwin-arm64": "0.25.12", + "@esbuild/darwin-x64": "0.25.12", + "@esbuild/freebsd-arm64": "0.25.12", + "@esbuild/freebsd-x64": "0.25.12", + "@esbuild/linux-arm": "0.25.12", + "@esbuild/linux-arm64": "0.25.12", + "@esbuild/linux-ia32": "0.25.12", + "@esbuild/linux-loong64": "0.25.12", + "@esbuild/linux-mips64el": "0.25.12", + "@esbuild/linux-ppc64": "0.25.12", + "@esbuild/linux-riscv64": "0.25.12", + "@esbuild/linux-s390x": "0.25.12", + "@esbuild/linux-x64": "0.25.12", + "@esbuild/netbsd-arm64": "0.25.12", + "@esbuild/netbsd-x64": "0.25.12", + "@esbuild/openbsd-arm64": "0.25.12", + "@esbuild/openbsd-x64": "0.25.12", + "@esbuild/openharmony-arm64": "0.25.12", + "@esbuild/sunos-x64": "0.25.12", + "@esbuild/win32-arm64": "0.25.12", + "@esbuild/win32-ia32": "0.25.12", + "@esbuild/win32-x64": "0.25.12" + } + }, + "node_modules/esm-env": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/esm-env/-/esm-env-1.2.2.tgz", + "integrity": "sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/esrap": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/esrap/-/esrap-2.1.2.tgz", + "integrity": "sha512-DgvlIQeowRNyvLPWW4PT7Gu13WznY288Du086E751mwwbsgr29ytBiYeLzAGIo0qk3Ujob0SDk8TiSaM5WQzNg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + } + }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/is-reference": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.3.tgz", + "integrity": "sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.6" + } + }, + "node_modules/locate-character": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-character/-/locate-character-3.0.0.tgz", + "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==", + "dev": true, + "license": "MIT" + }, + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/mri": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", + "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/readdirp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/rollup": { + "version": "4.53.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.53.2.tgz", + "integrity": "sha512-MHngMYwGJVi6Fmnk6ISmnk7JAHRNF0UkuucA0CUW3N3a4KnONPEZz+vUanQP/ZC/iY1Qkf3bwPWzyY84wEks1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.53.2", + "@rollup/rollup-android-arm64": "4.53.2", + "@rollup/rollup-darwin-arm64": "4.53.2", + "@rollup/rollup-darwin-x64": "4.53.2", + "@rollup/rollup-freebsd-arm64": "4.53.2", + "@rollup/rollup-freebsd-x64": "4.53.2", + "@rollup/rollup-linux-arm-gnueabihf": "4.53.2", + "@rollup/rollup-linux-arm-musleabihf": "4.53.2", + "@rollup/rollup-linux-arm64-gnu": "4.53.2", + "@rollup/rollup-linux-arm64-musl": "4.53.2", + "@rollup/rollup-linux-loong64-gnu": "4.53.2", + "@rollup/rollup-linux-ppc64-gnu": "4.53.2", + "@rollup/rollup-linux-riscv64-gnu": "4.53.2", + "@rollup/rollup-linux-riscv64-musl": "4.53.2", + "@rollup/rollup-linux-s390x-gnu": "4.53.2", + "@rollup/rollup-linux-x64-gnu": "4.53.2", + "@rollup/rollup-linux-x64-musl": "4.53.2", + "@rollup/rollup-openharmony-arm64": "4.53.2", + "@rollup/rollup-win32-arm64-msvc": "4.53.2", + "@rollup/rollup-win32-ia32-msvc": "4.53.2", + "@rollup/rollup-win32-x64-gnu": "4.53.2", + "@rollup/rollup-win32-x64-msvc": "4.53.2", + "fsevents": "~2.3.2" + } + }, + "node_modules/sade": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", + "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "mri": "^1.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/svelte": { + "version": "5.43.5", + "resolved": "https://registry.npmjs.org/svelte/-/svelte-5.43.5.tgz", + "integrity": "sha512-HQoZArIewxQVNedseDsgMgnRSC4XOXczxXLF9rOJaPIJkg58INOPUiL8aEtzqZIXNSZJyw8NmqObwg/voajiHQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@jridgewell/remapping": "^2.3.4", + "@jridgewell/sourcemap-codec": "^1.5.0", + "@sveltejs/acorn-typescript": "^1.0.5", + "@types/estree": "^1.0.5", + "acorn": "^8.12.1", + "aria-query": "^5.3.1", + "axobject-query": "^4.1.0", + "clsx": "^2.1.1", + "esm-env": "^1.2.1", + "esrap": "^2.1.0", + "is-reference": "^3.0.3", + "locate-character": "^3.0.0", + "magic-string": "^0.30.11", + "zimmerframe": "^1.1.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/svelte-check": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-4.3.3.tgz", + "integrity": "sha512-RYP0bEwenDXzfv0P1sKAwjZSlaRyqBn0Fz1TVni58lqyEiqgwztTpmodJrGzP6ZT2aHl4MbTvWP6gbmQ3FOnBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.25", + "chokidar": "^4.0.1", + "fdir": "^6.2.0", + "picocolors": "^1.0.0", + "sade": "^1.7.4" + }, + "bin": { + "svelte-check": "bin/svelte-check" + }, + "engines": { + "node": ">= 18.0.0" + }, + "peerDependencies": { + "svelte": "^4.0.0 || ^5.0.0-next.0", + "typescript": ">=5.0.0" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/typescript": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undici-types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", + "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", + "dev": true, + "license": "MIT" + }, + "node_modules/vite": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.2.2.tgz", + "integrity": "sha512-BxAKBWmIbrDgrokdGZH1IgkIk/5mMHDreLDmCJ0qpyJaAteP8NvMhkwr/ZCQNqNH97bw/dANTE9PDzqwJghfMQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "esbuild": "^0.25.0", + "fdir": "^6.5.0", + "picomatch": "^4.0.3", + "postcss": "^8.5.6", + "rollup": "^4.43.0", + "tinyglobby": "^0.2.15" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "lightningcss": "^1.21.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vitefu": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-1.1.1.tgz", + "integrity": "sha512-B/Fegf3i8zh0yFbpzZ21amWzHmuNlLlmJT6n7bu5e+pCHUKQIfXSYokrqOBGEMMe9UG2sostKQF9mml/vYaWJQ==", + "dev": true, + "license": "MIT", + "workspaces": [ + "tests/deps/*", + "tests/projects/*", + "tests/projects/workspace/packages/*" + ], + "peerDependencies": { + "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0" + }, + "peerDependenciesMeta": { + "vite": { + "optional": true + } + } + }, + "node_modules/zimmerframe": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/zimmerframe/-/zimmerframe-1.1.4.tgz", + "integrity": "sha512-B58NGBEoc8Y9MWWCQGl/gq9xBCe4IiKM0a2x7GZdQKOW5Exr8S1W24J6OgM1njK8xCRGvAJIL/MxXHf6SkmQKQ==", + "dev": true, + "license": "MIT" + } + } +} diff --git a/frontend/package.json b/frontend/package.json new file mode 100644 index 0000000..cb9869d --- /dev/null +++ b/frontend/package.json @@ -0,0 +1,21 @@ +{ + "name": "tally-app", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview", + "check": "svelte-check --tsconfig ./tsconfig.app.json && tsc -p tsconfig.node.json" + }, + "devDependencies": { + "@sveltejs/vite-plugin-svelte": "^6.2.1", + "@tsconfig/svelte": "^5.0.5", + "@types/node": "^24.10.0", + "svelte": "^5.43.5", + "svelte-check": "^4.3.3", + "typescript": "~5.9.3", + "vite": "^7.2.2" + } +} diff --git a/frontend/public/teh-jokur.png b/frontend/public/teh-jokur.png new file mode 100644 index 0000000000000000000000000000000000000000..007fca714bafde1cfb6c7eaf309d0025cc35447a GIT binary patch literal 39785 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 @6W5Jf_VQD>H=MH_f z+-#6IG6QO)6cjo)(Q43&1!lCmn$1Uy9k+Jc=)iR!uX>nUP03|Ed8iH%*jR3Hm{`vS zHC5}@mQNt?xmUMwZAmB2XW32#s{8QwVUlG zYRN=+JddJy9Sy|9KhusP4h!P-~)lXgUtc_?H$RX0FBFCsFS{~Zu#m;oQw=|XG>CTeI&9_y?-rx?q^>! zGH}<^?^J-sXD?rjc&_fgH6v*d9N5# zg-~>xiVgqH>f490PS(`545!v&l!Y-Jr;WaFjrr88s%GmY=jISN z_wmXWd-GwC)g*s~4XB>3(L;GH0>E+VVSGB!seK1k?Znlf%W!VZpu#KHaU2{AKhHX@ z*qjtw;m!K%2KlW5ch}CPG__rD+UD%IsLA9hzd3p|;cx_-<3j8f@)tV8c7EnM+i2;H zrpIe_I%NaY=-Izxfy7<2uSqJ{}4xxbTC_g>4mrS6!)Eeg&i(K|}v`{rxr@(yxWr`g-~!#~^3qE*6QyV-$Ae zE;gM^luqv45&-V?#eg*M&55{KXk%;w>^9XNfL&zzmDT0j-x`CsjL#yfreRO~t^AV4 z658eP(d3PlrQB7lE3i`kk1VgZZ))M+N<_U7m1{DSvZ^DZ78ta}dWl-U&Uf)Sx|@<4 z)cF{1s(pld5dynqb~OwxhKHhk*4u?%CvP98%g8Wv+#u=JGC(HF-YTp)54HYy9h`FK zb}vRdouw;lIh`}rW{8q2USRnG+2U%pM6%6eK^;yroz9hsnM_xe-JlwwM0G32rgj0Y zuElZ!`^55voC-!v3zt!&+54Oil+g&_JLTh9@Ltuw{vfrY8 zGa8?yeh!e>-!?-pDw|o9Ql*wOJqNAeXZXY!490< zZ=M5X$~xsI79T00!Vf#xt8Fbg-l-bbyLIRgAB62=8Q7=g4*C;0iK~g@!D#az? zEg%0Ol=8n%{8Q4o`^SPDZ*B!cBdW*a0hPeATX7s2O?2gnl+U*^ccY7&bm=hSHi=YufyB=YEdj_$AdOak>mH3Q%9s=OQ>uPL-4D-6SDAh0lY)*NUI&mQt zD~_!R#5AB;#p(l`W^rBn>4tG|cCx*C%*NpCOK!C$xMvA|~ zC4ugnQhh`|)}kjdIkxBLFQ|E#+R}NHelj@@9Z5@)R)5C#ESoO$)RolCzlwEHbmANc zB{dgoyz1V@H;U3*e`qU}p65dRlfVv-g?}C_a%5s0#B?>>ywd9Kd78V`!5z67$&TFi z5T5eK!Ley?lwe0lA-h7u3Ir4OQ$B5=TVnR#_Q3pzVT6`D#h46$&!D5xfef}f{BB|4a z4|{QVai5X@8eLqqIuWwR_>MMinJihKPhxs=$Cn6JF4nD##*3Vt zWm(K7$V9I=G$|3raNQb)dc$$H%o`b$R73gw1d(%rpEe9aSGs#%+AlUSJZ^pxEcf+? zUL3IU`@Qe&)lTRvJPYTe?u`8vNJcl7R>|CGLaWUq=R|-nrL70B`jv6y@@);y1=If5 z#EW_S$^8cH5-(bZk|TbR&q=h^3+1}ao|ZB5&h+jQ+nLG>+P579aqqN;QFXfS6?qp;oqYee727Gzooej{`we5N%Pf}@;e1)lFjxV zL6=IMNaI!~hebbnN(m8d{%|R_+9|BtqOW>XeSVu)8}Cc#O64hjVNDN4NeVbABhp?b zIH&in@paEsNZ4QPKZaSU(bqHo%SBDkRMA+256s!1;5p#o_l7n1+m(3yPsDR5iEwnb$U4$S}UO6lZ;@V|Ap2~V03ktnH{eB{oKx8 zDHQPhIHfFyCG8cZ+9oLhUzX2V4zn<#jL#uQAqb~0UdYDh`xSWK)7&;*R?P6c&Ul6BB@k5{m^tqu#{1nY`cV3_xOH5{TE`FLjmmP-xcWS^ z+cjLc7cRE9oeEak;xJ+lUh%Uf!T&YI+LDx}-Winn?E4ZC zg>?Vpo@*DMwl|iH8ouy?m*Jy6k|mXy(kK>PNSf;9`8WMWoo}rA3@#u3hJSz%2Bpqj z9CFgjPs|m6PN)7O{VYw(hP^N~l4~d6I%n{`Ia)Zg@=7R>y<%_tv&LOCUxl9PkGaai zn=jKGTEqqZWpd`G0qie0QoS3O!?2!+-trBe!z9J-s!t%8f%0M8_}3&8`OV1(gi3yD zu&1xl`Z5-@vIbLt%YS)ZBd9-B% zgEZyE>Rv1~WK`*;v!ce56ubiI-{&-COcWw|)q2GA*b9YD3Axp3$R1UqMJ6kwixFnI z&`RFYVa*exX={q;HH4@DQr|m8)m8QPs`V)ZSx!3WBCjrUlav(irwe=M>8Ja;AXBb> zB)Y2uGm%U}j2apKjkInEWP?lL@V>BW$FKABugml!*05*k-HlxxBb zIU$m5u|jW-iQDc@M5;R;57=EkE&yALk0Xl5o<*)PSDQ$NP%r|-!wsYP}iDS<1WN=lBdqnAnqUU6Pu(@m*60ZV3;42kD* z+cwhC&Kc8t!pe685#_EzMHkwg(%L%WKaZ>>y+ltEuc3~Xe6dWnyGvrDSlaUcf(Pj^ z1s|Zleu0_4-K_rVo0R?)n3D9_&F;Ms1oGJpNS%iVu)thHVGn<@qjDE~`(2v(+R@e& zxuNjn;QB^aDTDt#1>AEr$SxU{(h@{@n#ln1CTGjOGS|JCA85OTrvA++7vOC3$2x>Q zw&$kt8hzq%+Rcv;W9;I0&iQO2Tmz-qng87)nqO2^R7;I%R1gV6CnUtN2+CZOHQtr$ zQ!M>Zw=YW*va~bxG0Bc+D2GeKQM7z2I`-S;R~-g)*#0>DBtO?JIa3*0 zTJ$=argBo^BAHOcSePloZFvbMyTlw=CEs4xSWR~6h$QrIb4(7rz7+~ov3oI)brx#!$2TL8A41lL0$hPv z@-Xetb}ok_aWX;joYKwjV(Pyv8kWrms94>PQ0dg;Ze_1NfA)y`7blq`EgpXfKc}E= zIZcE^EaM@H>L|sA1#+q@E_n&I0{uL|uV^#RE?12EblP_QP;Fs@%e`?s+YKrqs5Vz| zWyJhWRSGQ@tGV1x&DX9jG?gUKgQu0si^D?1PiUjjd+$fFKZ>8Tx;S`>4Pw_@PQ|L4 z_)zlU2MTP{zxM{lOcf=I2B&v$^JV{uyjE3{d2ollza7H8LN(=8NoPk(Qz)^FxRGs2 zs<`}|hsU)JoAO}rW9?oyqI_#acYw-qMm0wu8`HiC|EP+IY1a4mnWk*Uh3)!u;dxsp zcb9|n%Q3$YP-Ysf-K#eq^rJ6#O?@t*9GF|I_Sr2T%2&Uzked|Mf z8N4-&)Fh(F8bg~D*W=`NHE+D!$R&7vS-Fzuj-IHR4g$Til;qB8IM zuHUoYIGUxPdgP=zyX$78K%w>!yoCX)YE{D{CR=rGj-Pn+sds2uSg35p_j*|(7s;OR zdPygFgLK?qeB=yMzn}dg$<+bZA3tmTXbS!GS&nEmIqIuc%1(dE8v!?h>{`_ed)A?7 zh(rg^p(&$0&+)WMI5IN1UWN}9%{Ay=X!@@&QsbgxBJRY}c74$9&5yZyanZKnVe#QI z!yrll3#CQ)9ZDZMWI899r`afCImzjGx%L;;`f~g9Ee1SngyORtdhW)*WrA%fRXJI& z?xMaLT8pz=vsEQc({Vlk$3m*$vV1G#haP81Z`4EZw=3LBFcYTJGk3Sa>exh0%Edt+ z-L~E7Y)?mvVp&9&`4QnUEuApA-Yw)~66QiGwv$S0LdkH)8k9B0h3O!!y_VA%4554Xc4Q* zFVTGRwZBSjyapdJdEid)4kbYjjss2S-iWfi7$Jo8m1xKVYm#Il<@}VNGD)Pww^61O z&qT%qrm=ujWGB3r%*@wMso)lOGn#v5Tgc%YBTPW1l;EkC4g?8_JR-^?l(ITKBg)!# ze|YLM&dJV^I7r_64Q$VnC^5f;_VM?1>*OiF52~qB7F)&upKJ!c8Lv)UZL8)fHg#Y0 zC&HGv(V`0X?;Md()dkGeLhTEKb6B{xWA)DG|aL(?EK19^rMD^}ZimujgU#sZ$ip|Rvo|JfH%F5venU4!Mxvwn1)9UW4dm5!1{cI9vf9UgEBeo_YTgnB zT=f|TGD$+<oIVdF zccE{1-{V76?e`B{{OkJgafz$t_eOq8<|pRQ9;g;SaY(4v=NRSH%!bo~QDnjtvzGvj z*|Aj>1=?IizXq>d&Q{}3SDLRjdpl*lzsu#Z2l(KnEvb=m6AU|PZTY~Jj?;7nu=6GP zwSE2mrt!?QzW(YQUt)P-o%@Gx^2lPk$gydhOhyMB`kS8{JR#HG;%LR#t*;Hvt~hRW z1>#^Z*=;^1+wymJgbzd1uQqpoLBGCgb?Lp(&Ld*69SwkOMp@F?Y;KlLB(heTtfr-Ix?+E@BK6_vbYO5$tcshlLb1KA zZF_HTaOoQ2adD8R-N5zZ$Bop6sJ@_K zZpw5`N-K-20z^xmOLf+GXWll}qL`aMx_oyv5ji-Q3Ql5eh$`80HeqXUacyNO-NTx} zl9Y*m98;7;3E3SMUF91Ms_5eH{2K(}YI1nnW+Tzp{I!TdsOCU@0Hq6@tf7=FmYK9x zS{nZoJ7w#eDqSbM`)DbeotfW+2?3Osec9X3S@?$5RU5U5LjSR=HX`o2;v-*4nTzsA zzUII<*gdwrEBG02{`z28K)1V=0>pJ|H0Fny<)=W|E?(m|-j>y|sv!A~Ee5_T7x)zJ zxHF{G<>T4-*=}zv`EPBlVue++?Fuf8i-;lS8-f{HROK*}*Wg9R`nB^K^i1C$T1OvU znP)L*F=vdhjyjv>zCOS#$11V&hvYrIkUD?Zax|VS{bCEj<-Q#dNY=`XFK>L6j11US z4D7dJ#CIZvX53ZJ4N(TYdqn?8h!diDMIu6Bq@ zkYY?vJ8@iYysrk&0Pgw^bOf%JXf@20+pmvv{7@iLv)}6T{KgX*%p$wsV2;r1z55-u zmVcbtu9$u|a3Y(}o!k44!Fs+j4+eH7G3jN%{4M^&5^+u$VQjWun~Tvv80O8{S|&SS z^5VFrn-1j}M*UsG&?q$)Msl4;-52sW9OG8TVe;H;0e5v#D-N-ZPbB#D`D}BG@}gWh zZAZ^$za$b)%!*DP3N5AwqQ#{D21>ByAsQc7Y?$-)ta`#{Q!A>QRpmfeHAAbXr){hsZ8HD3qgK=w@2{bPdnYAUSf{=b?HdH>aY*|P6` z8Cq_%K3wnQ>kq}yNcjPn%o^)Up;L>HPNq|;H%9yt~x^MJ1YMCM#e%dl*?Ib=5n7j2? zM{j)`R6*$BXhv02&7d}sXJ9b598=m8{o^9x zQMOU9x-NiHnLgHXWpGJVzXZWA$#wjFN(Z}1ycWmgJZ$xdQ`|@3v(bq{`gU`W^TCF(a}-b zbyV9jKSo0rpw&Nfka2`V?&U9~W>zj{-^fW`*Cna!^aCHij=-fO1trq-9$t9bWSZO# z^Y($9*^UIVPGw-1t2z9_ZtdadNnBG?z4sVQ#m~p3aJ&vQBVlHmRJ%Yr7)|*eYIs*_)U!HDpN?{o5AJfqUEBbkLm|#FebUK`- zGRwZ*NxH{9rj_e7#wtWtwRWJU`+DqP#ok>;NhyO~%P&KsR`svJ4&iq^!CTsHSSDrY z>bIvuPyI1vV5(26w-?OUqZ(2+7O5xlFPVdmPa@-&5FhhIi#a`uzJ3Paw=CSHtuLXZ zW9VM%H0D;cm0>r3cgUY>>n~X!%+sdTM60S`8{A_MPk<1S#^l*A|9a9nUES1b%N>Ne}eR+&-73)C#Inpd&L z&!;LHj!&Qya5E*I(x4PwqY&KYq*Zd4`q(PTNKashA0*RybN;v?l+~ z)++lG#cw-XPybP0^TJidio+4w34U{l`YQ^bK$* z>@NWIlJl2EJ(Tavnbju=^pYV5aiw-1;vZe{H0(lyrRbBmQnWC*4|6GWJQaK^X@$v_ zXzWhw0btd4mc4-pH-|G4avLK*V&HROK{4380nFstSB*R+;E-Y*$}BvhV`rm;A@+Nn z=9K)@S9|XK&`0Mp{SELADf;z6C>+#rDOG5)YVUHek-xhw9#5Iw(~<)`$qadHE$ZNJ zPKyJ9JRI#vz~D(GhY;OtFbF00Vs}-wac-Zr9`M$Y9eB@#Q&EAth@X4p;7{6PqAs zSkk~k++D`agTz1=6n&cX`lh5{mFK)ak+8kh*-b!L=wy2|S&qN8MY(7>T(G+~3J;Q6 zHhEIMl+u9K+Ms!??_k;WL8`t&aLCo>}n>0eN z6W+1~%C1SpdewQ?t*1S4zR+~B86xCfbF#Mt9`?L=af~_BPI#et*o1jkyeT9Qcbq(d zH)l(gCO?lRcofL1>CF60Zo$J zoS)+uk!t-lrPlNxdD?&1I#+n!PDq~->-`!7OL%w!kuVhOcP@+8pf|VFXL>6jFvR_8 zF22!5pFREE#$cruH+o4%QQaFnOb-9gQU~4Fl%kiEu21NRzDt%o+v*Qh>-nxB52wfH zc`w-$v@*)?G8@J5Kt}ClC;6W~?Ef^`lLZ0K`@qQ^_3FpACa=UdlNVdb%IWWRUw<>ow2&T6YHv?7=6lFU+gA-wYqtyc&U z%hMU7rrK8Bu&b*>T82re`Cm&~6=!HE7UGwz$S4P<*`ES6hZQI&4PmFjkNmCQS}ay(TnW1# ztB5x1nu1`N#~hgYU+DTMP|~Mq-5)x@`n>M8Vw4_~bhRPDi0nhoA4&01XG>K--ipTcfE4-)~dBbR)rch<)Y#Bw9C}fQX(*xKK)785`aXR z$oqQhJ9`e^`T`v>6{6{ygAiJ-L2Mkm9jt3-)6zw-wV~KO;{Bz%bxVii@TrXn8SOaP zJKN#@okESx&Qb3p)XNH60m$FCliR&r5k#oPZ~aAYg)2|8E9;0{l?9-GGH&~I3IN~l zjRBZ^Xl2N3{RBYK_=NvSc~UWOFekU;Ru35VAC`_wEI$?Z8DGRovCHFjY zqt|5`@_K)%V%@tlbX`PJQuNcyBM&hnpk(gjh-QP^eMGp;utG-90;0TjgmD^oA^4UQC;xWv}!lS_eSghH@|3Axqt^Bo+Iy1xm!$ zV=2smWF-NCR5FG-E7|)b*;*|ga4^)|=(W<-MxVH+ymh6_WIc*JMA@b8cw}}GTWi|S zyvhE$|38$o^}yd8Zz-2!gNv3mB`OIX>f5YXFRc}^JJGuk>ht)zYQzL=ir!#C!g^g< zfC3!}6{?@HpfgNoIr?S1I3EkW8q^!HTN|V;<20LPU>&)_sw&zi=?oVs$Q`J{6KKW( zuCCr6oNMG4Y|khG%+vWg*>x5}xGo?1s7dq}`>w6K_`5oSN*3J99%n-r+^%NA8>Qb` z8bUc{Lf8xSun`;Vh4ZoyuXcYZ7Md!JGca2It7hknhQX#mq@ZR})4Pc5ajjj@Q6tiW z=`!_61!qZGZ`6G9O1;s6SIT`FxWRmVsk;tC9)_gT4;9%Xu3KYgDL6N8*yg){n5QD{?<0R!JApiKkn?ZMsjWw(>RK;<+8_&wdVaz=C;3p zk|TXWR#h4F!ZSEdSejkTub?M2CXjFZ zigzkc+yK{AbEp!xe(@iG3Tf!k6e#gOv5O%pqq}g#!|opTcl>0Z>gAWJi1!?U*byH# z)^=3z+9BoOAQldOb(LDi=Ng8iKf*!ZlY~f%1epeg5#frQA%)s`A5=$d|Hv}IxiWy* zT4dllkQ)2y4V;V7&PUF0R30uf*ZAAqq6`#H_lKFA9IrD^q0l{C61}zIK{(Lk~VpQGA1lvhNjE$gNCaCLt|jgy1g$bT)@E_ zGbF9rM-+2=!O2lGdBU4Nlp||8ZF$j2?=;0#vhjwW_EuUlij0X@_L$`R3;oQr)W=w3$UO0v zF^%8TVjvX;KTC0p%z!1{yvg)QC9;>~U&hV;j7ac&C&#_t@!3t?^$B_pqQkLV{=;Oe-PBWHMz7suB{5w6 za`3N6h~(63s(R-guM3Ijf?)qwPAjY#2&3uUv{~h9N3hp~j>(8dU;>Vf`Z~rP`#tc>sHIFWQ4FdJF(@QJ z(B`l)D0}VY^0Wmzw_0au*#ynHEj=HW;4#9`Av$(dM;w%$EF9cLd1HKIjTAFrubc<;9|FHEV${X!n=~e0y_heD=Y5slr zDC0(Cv@Gt2d&WO7ogJ!KXU2@O@XQ8SqNbkI47)!#^zf83yeXCXVZSZR^moAXQzDl; zSq7JFY|XhKE|WgE+_j5Ad#683Z6&?Yh3{JZ%=ocbL^`$d5^$NJSGo2#SL#|rvA+s4 z#HXm#bR(?G1eeWhlw^nz*>p8T0l#?<1s7h|a5-dWeCdG)d;ipUeXO5B7nmj-gsW8H zWi7}#J5c6APu-LOT3**#`sYbOxMDNVT_6Osb>CcZWEa%asL!jX)wYIh6blpiXbCE| z_3_{AYI4Z~LlR}hnaaudu{UGM@fs+>fTy^*bF@3A7O+3@tW=mr#dD= zvnLd~bGtFJzrVFP=R7}UeuVo1OR)hR2qh$_%Kp+QaA@*}5qJvuj$41eY|og4!7PNS zsKnpmPqC~A;P?&7VOc<0qZtc1vrTyJfDXtbA`#l)?U^)jGH+aKQ!8`AtF!>r{tiD^O zNeC9}iqiM=2Rgg|wRnrY(fvH~yQls}kGRL5sy(gY=rf4ZuRl$RuoSS6X&j=>ooXTM zo@rEhRFCs!^sKev1t(b5>`-{Df7i6w+m+J((c)0X@c9(pZEYk5#@EYTk$xtY=SaT7 z&6>_(PH%A0T44`Pjjsul3|A)JD=_O+EYNvAS>Qvp`j=iFk{?yMfwCcWjKA#gjb5TA z@2?ut)mOUdArsU=5Z8d>0Di?j#UY}K7lPa?AXk%+7$Z~6Q8J-+5R39xuK#NI%625aA}RM+j;Y>U$eAl+V$6LsiQY6 z%Kf~~hHqLL%aK1`oOg7)t9cCiPoIUC#+*A*V9VQvGan9D^y4RERWSf`#Xl%regM$L zp068;rgo(fj_v5Ve~xUE1qi1qEN(Xjn2D$>*ErEzrC3VtJi(=RItZoQJ{gUe1z0ag z$!fnL1VNtI9d}YaV2}UXc4M>kiUnJP7;w_@&WiU2=1xuUti5))==6aEjsI}Q6Sp9w zDo3NElVN5O>2*6;`qtg1i(_!I8&3$n!_~d(fAL81%S}{jSzk^BwAMX|3EOPV zB_WvoUl+Wf6uN1>^sV#U;1ZHZ2eSe zI`OBmp=K`IIK;~3oF!)vbjNNxs=vAtJrGxch3nd0KYmX*#JnC2Ve`X%$Q`tf7czl7 z&(tQ<1Pi$h)ET36crpHQuRy-B6O75r2K<{X-6Qq8Zunn)V?%h&gHH1>|DDB z{2%~bnlVCZZ?iL%Ney1=-u_?B3+v&ksaT**{=V_hm*}FVq?7fQHs-|y_c@fAONfc^ zh;ya&Jgu)RE;_SkdfS`(#=6=Nw4~cLy_6c3ibb})Xf{5vI4{7n8Ev`gYTpbg4iGs% z<3{DQ#!$6)8PBH_Ff4i`Au@*29Wc;y^j56M4!NX{W|7f5GR>rwd!Bwz><_GatookQ zjTnrgS-PocU*j32Uz=S(VHFIvZwTduO$(?YinTx#&(RQ(7O*j=aV7Iq@2WlcUpYDsE zb+L*eQ_vc(B4qQr)AsV1?3?d|D+2Le#rLAt`^+bCs20@qW_=17OZt)252c{Dk#36v zD+XQ-T5p~F`ydjNpxNqKYkr?PuH8wRiYvmpTidhRicuhV3Aj4~Yu3K1P%|zLLK{Oh z8}3+CAWwgNPVpEFt~p+w83s>wypmWJH7wnn&_@1%;E#>M}xz)B;A?Cj; z>n|&t3T#>jO{xPQ8t;3XSExDNxLkj+jQUCb9+u@+16b@NOj~N7*_gV(mtl3vg~kE4 z;B8hz)s(EQd{u*_7^&-l?4#IByrFV>95so79?$cDGh)x`)xq zxYs(Y2%A@}O*||eTdcdi3yB>w8d3SQfZNIPRXQG|m{W&ftu&&D4)VEc;Is$-X%oR$ z^$QDZP>qQ|J>`j!JBIrzv^W2y7EuIOgE z1vQ3313o_=v1r4ivns!pcTj$}^vxfme)_Kj^0rdJNt8QYG-aP3DO0-Skd)^YQ(ne{5OJ&d~H@ z3>N1{eQmePA;nSxQk-T=_xH|6EiMHX@+f1FT2tv*PX^+)6sc@MqxDT3%~S^pznH5i z!uqtO$R;+gdFe5&h2FSsB6E&oqY;hhjOw+^ochQzYeB&HvUrkLRd zMn3xaG-sQSZ|c-X~dWW>hnVU7+KHRMJ-%au@%}nJAz&8EdVyJHwbZNzlxqaot zOhX4vac{cm+QePQz^(b##Nhd5%aK+#P={t((9hM zb8UDgP;={LH-HgSpnG=vl~jgRhb%D}3>K>cw(-b?lHYl_0z@6E+ie?vf@}_3f?VY| z9sbM+qBo%RH21opH}hTKW?5w|&BqGZ`Yx>uh4#z?iLCtm{W;&CU~)Bsa5>%o_xfWx zY{YK9@S*U!p%#xHTY z>^o{yI_b~Jp3Z70fFki!>jc$r<04j=@`*{R`WJ_(vcPKGt3G763JNRIDP3tJ9USBN zm$&g_-|i_e+*+vLdk%oA<@VcAr)z5ZTAj#n{b|P|Mq8u^>-M`&+vpDss`BBP^&$;m zysvFulfQFW?`vWL{lANH&WO%?GGci%j%bIms{&;Fo9nN#2qIK%+INP+&x4hxwIOSr z(4{4+&jvfA-VF;%ZXPx!3f(`&+vE%4dU2b*)@AkG1K-ofu-Sm5#80_n?^Eid^t}_x z2o>0M$YH5rx@d!6I@wZIFo?KQXTnr;xah`SFj0^ZFx@%l@(ItSNOiE-1AJ!^bB-)t zy*ykvG5nRoosfdM#%ykKhOXTLdIU>L-ocn43^p^6#`x+h&NZi>lpokkm2M*}ACZ1p z8_iTW_O>#4;Pw?sYt4t9kMDGA2AGTek2B6+-J5&$mBl;beDt@9>QHV#m3uw7Um?J= zHklMj`_#n#dTlHt19plSNYC%teCi{i#79Sgoekh-1mOP(4wcWP#|fyPS~r~TR@^Hy}1YN6mWv|`pjd;D#j z+0rHIDzFSvq}5K#um+6BKbB_$?k&h}xP*)zcNvc@gC9-%Q)Tsie-{A(S}i;D;^WH$ zSh?Wzdg?gV#090gQi?~kxdRKnuyothy4G0Im3E66itRc&Q0Y4;;HYMwgJTW!I*)W| z--`F<20LQR2;alWSr?`45?`J7l=Y0qar`t}f|rz>&TthG}vo6VsTwLMSOpNytE_GDBcr)lb|-Db$nYUAOmA@ADJQ>)Q49wHr16xjY<+$`y|1l075DL~ zp8UVc(@*%7nEQ6$yR2^7MO)ka81(zVV{eivy(7#xq_3fRSs5V!8hUDMc8y~dxLz{n z*2HmdWdHmQ0dnRh_~5!YHiUkxwPa1vqp(D9nY{i^iD0pMql6HyPmzfrz*)!5X1^k+`5U@2mx=TyPuR zZm{Io?apN_NCAZux)O1lG~3uomuPN}zG|q^-=yA_&~Eb$}eTd2?;iVlb;kWXpR!bd7lQ}6^$pl~SraH4>g3-Q=u(_ZfIe&I{VP+qyXJg-;d@I1UrQg6a=&Z?Vdf}5|CpbxCeaC9O z_Fnz`DdhcnWT}OEu5m~PsvUnca#bp8`-^%L>T96d8hU-H%C|@_ggUDeR)S^JKRps0 zhtt*!GpUus-gm!Nmm6tnJaJG5Q4C8JQLp!-Ypv(Ac;$4q_E&$iJ<=&N`k{HvpY?~t zXKKv?k&lg&3EUuo5xRYlxX{%x!a zJpjG|byE^z0`Dd`GRf)v@!)fq!VK)s*LJq;!NFB2+e&{?s8DfdozJE3$y6+6{C*H4 z#+IzqjxM$|s_9|z&f$+)DF_K3HpC$4`Dm>`K0521!`$L1#t+ZHBj}*os`(uL$BM1l z7Dn}G!i07wOVnVr-M@68VKggap;EN!mlfs49PDiG`y#7Wf-me}N(yX|=Ftp>oAOq) z=8PJp%{Mki4R9n$t?DwtI;0OP4iS5+3x_N^IyL}}SUsDwChGtH#Ze=}75%BHY2v>o zii*o37PQCqjVtEJbMV&IJu3?m`~4n7!*gf>1JT|1Mw&uaKH4m!7bpL+J%>+H3PAmdtMJf<0Hx!Z_>Tj^%sl~0}kmh`sL z?Hen+`r54!s)}>B2EaY(EqV@uM06#LM*Fd;Pwmp4ZVehV zNxrd~Ep#;pVBMJQWD1$n0doTo3l*%iX|a7?GpyPq?pyTV^P1I|{$T2c(j9uB@A7D~ z9%k;{&}`fT|8lkb>3dvkLk8imkgyBpy##R_)GEnzDCP5 ze%AYNe{JHc{6p}6h$WQsUOI=4Q#0CtJ_vEdFuWsHWO`vH@JlRDP!3qvdJ$ksUvjDm zqU!-um3LDv&seQ3sVM@+;+b87VatM?^QgRo;JeJJx6ho^`0aTzarU5zv&@V5l_9<_ z_I`z_gp%!&{nndno6Z$tiB>LgL6-tZNiYsPW+~R`m1l@ZlFP_NNAc;%(?~btI%kr2 zvc}TI7HN|cXpxJMHax-W`?oxXL^+1jcTuU7B9!(gYyARXWb%dkd_z&>tj!;O9>1oA zJc2Td$xuO?BbL2?iMQzA2;VHkfJ5(i$)HaBwR5I#v!Wi@PsP$rtlhz%W@UXTfWV|JPKp(Sq&b?RwzH~ zk;B9gLdCIR7Q3Xuhfw579>Gr6SN+@hwyxm(tPN8X&s_#OU#f_qfP*?EL{_u*%> zNMqGP){tP?+Dxbn2;;G>$Q|eO$Gc9A6#&|I4js889Itv~(!RLQUbifNDMq%bSm}t{ zEE{2qQ3PHs_WWwz;4#YQ!Kj<=Zk( zK_`KS4d8~lqwVeXI}5Z8Y@{$c58YPbOOu>U<%Ow4N(Qh>1>5sk#yOZ34ugSnJ|H@Y zI5WMb7gm$@W!~Xg%%8Uj$jwYLphDk2>KJ^mzlP;|l5y-4uUp%S^CyccitWq$U}Pkd zO|T_uTx&eO%aWtj!V+D_$(dKV6}QF}v$7Oko55 zt^9?}!-Q`3L3>C70=)i-&0J3!xZgJ|Ph>geKpxYMSC1@UQO{=niN!^XZ=oL|$C93) zcf(Gu??t^1J=@i}Z1-Ina5%BlD>vFlY@5f!^)w2=3?CO{>W{u<8- z4?fuvVC>|R)nBvTZn5Nou)25DAIT-u8-v7y+9gEWDnNR?>5CXBSx7?vo!n?AaByM4 zUZJwx(?M~AZBxi1jL?_wC$N-x3-HC*KZl5Fu*KNvz1;A*Ul~|k8-k|kwlfdovjJC3 zjS!r5CQ5#St5>X;@<=R2)H}KwI;B#TJXl{Ua1du)YL*4s<3l{Ay*>u{4*SKdg z&+XJ%SV&1Ee>6LR@WK2qT$?_MTw?o3ds{~7;9-W`p+WSwUf(b@xQzGeLl^iZs5q*H~%tunI)=Cb|^q();%x^QHM~4mPRtuW|?Y#I^6O=q=Xy)S|V9Wks2+!Wa?`xt2c`NFzyJJC&Y zk>f$v0LCPnoQ^^JiHo|7ZvWQGOn|~Ii19_hBhP;Wq3R_sKq93u5GFW=zBcq1mV;2> zOjS)LC?j<`Wsppprl5ok^^vPL?y6;HrD7j{Rl7-4Sm(2E`@<3CSL{$yOi%MTXn|{J zCjsbPo_0Pt6$aA^ol{V!J{S^cI5kh_dC26qfe8Yrw+9dFC3RGJv__@h0jGOwNLq=u zinJPbB@-coK`=R|SC6c1hDqP5UKHq-PcAY>Muk5;;4_}7WKNH1HT1V|AHHfR81@R( zB5BIs%(U8Mu}w=VlQIIwGjM%dE|+eRH_OG|$3r5+r%7+cKPPmc>N+l@N&S|-uQaYlQXACHB{oI+s)DmiQ1s8iMo;wXKBiAz~V@spm%Il#^ zqb;d&Vi)c!QA<@KBoLl@UF=i`J>=73(3(Wmi}U|^?hNX3uX1bBOAkG8MWh8+UzNXw zbwzs%g&&B|L;d(e6Mf{yQQIM4@Xq)6&b@bV6MzacPI{I}|H=r}N5e}KT6^^`18=-qlP;f2iwla<*C`cjjr)dF5V#p)}`cHTW8+xaY+;o}6!juY5zNxsNM zRUG;c1~9(q(wUXW=);jBcysfxnyDDv042i*chQ7?*#lE__vopkr@;W3fJ6KK?h7=` zuh)Q;drr>PL2fC|^(!!w1X;4r3K)GnR}e(T{YIQboY*38t^{t*q(uzv3vzJOB0&@l z6bHag>r0m?xgmk3Wj|hXYb8QTtV3z40#RiKCH0iUHiWe(M@vj7Q>PrV!tva*K9WPk zefo6i;Z+%`LSq#%Q(j|1{|SDs|x0(7b1Lc}dc(U;0w^vc7D{gA^&{BA^k1Q|2VM z`bp-^H?BIZ-B*g3JFxru_wmj^%SksnYAiZ^)k;a);cDzwj$^8BWxR}ua_5^s+^>(ahglRljkP)v~G64kH<8R9uJ2##o$T4GcD z|3=KFpk%}257WhbT9||d&jtpP$+NZYn}aLBrLX2t`I;> zJyeng>g124!UDjkT$?-eBA5Z2@2+`OsxZ2A+FG(O>4ihgWo#Xh-Xwb1^X@?svx*?Iob5~I~Z`c`ABQ(TzAD027fr3tf(?wtH3?Y=^}HtZ1x3BRgC!e!Z=a?Gs^DeD&WU9 zL3{05Ca^0~x8y1FvE+}=frpG>Xfg-3)&NXv&WY&6PZ5hj-QK$x^X+=xNSH(#x4-BJ zpAp*@i!&6HoLP-F9?1S(F%T8|R72yVp?3dAZT_{8^((q9k}Vgbwm68hMB~Dbf=+ex zq89@I#PZW3yNJ=Xv*`DA`nQ9_~LA z^*g<#rRkuQVG8)bSMlc@e%qgKP&Jo}3($Zx0{1MEXsyA$;COJ#7)5i36v|!CR zf+pU5EEi7je3Qj0Qp9nYXKvzQd*@iizMa}bl~=M1r1qve>ENSpk;}O_CTgQA&mJ!_Ot45RHJhjI_rGDl|c%NC=Bk@Uh>iLgwgyl<~aDUTZqmQ?)+ zlj?dM0v!1gs@2mU`j)S+>lGB1l$+K`kH}2e2O`Jz_v?tdfbFJgI*K!Q`2rw_^_M{V>7T$mPKm;6uK+pS81H7l%5*L^_%nH;VivUF-Czm`bXNL01thpk2Mn5%@nCZK7>Cw~gT8H)NC78b#~U(+mF?}0q< zXnMsOhrh`T;mY@L{uA1$aL)4U+8FZ|DU)mE*Kc!-@&78Jq>eoFX;b(%o-;8@_cYVK zZ!>Mje>`x-`_uDLP=)xjl-Cri-}ty$%*Qr^hPVDYoe2XazOGHJ{tFNN_gnjiNHI@3 zY%L?pw%hTPHJ=Dyyk1jkUXQD8F-yS5yg}kEKKY%95GUE*_t@Qy*xyfM-yV5OnV)xU z^+xO1qZ1l3J@R_P4=m9cX;E6n9K!> z9}E5Q^Ye9!pVvTEmjl}rNHL{?M=$sE6FVtV`SuP-mbkGY{zF=5i{E*Bf*vt%7O4ZG zIt4>0b@@}~Y~u@40$`vl)`bRul;_Syzyx=!1vRWs=OooR-qTX2aG7(XA zQh83bp3!*~-2Q^yk-_ju)PhitO*idq3W?<~T&D8|HbB zLW?V!J|Zx+Zb2>dH%BV1lztex2?8-F)d@z&ZZj({;_BnJ2GFcCW~up_afQH|an!~{ zOo);B$3b#@PP05g_nh^BVM8E%EiS(?-u;I-W&UVsUjYFfsm{>5Ul5KAn4E$vpIX0( z+-Vh+feti3znVVPy?xTEFv4vzJZwC!Tt2MDEIG}$_oMI9P7mRdrAX{hE1Z;VYKsQ< zO?%jLl=zDtj;gy5sV|wlQVUl`5%q_WDb13-a7hJffnDmg7gJS~4j*Uxb%EppTrRF6 z7t;E;cU!e&C+AaLC+)|2sChI|F^L^@^1C8*L(2}O)`4vbOGq`IY zUGx&w!Uz!H;$bjWP8C|mEEaY`V0v@wll^>O&xbm#lSYSJzXcj5M%eS}<(Qv_C>Su@ z>3og`JmPm+^J}C1IV8HXKO!{A02sQ7JXwZ#fNLBb&j^6Wv=hg;p&{2#O!26AR{SZC zkb3rST?j~XbGc1|0%#(vgt~-Ma)meGPaMiD=aQ1~e^!?E5OwtoV%{A~G;TAqX94i{ z4tt6$x9_|Ut#Vo%T0Z3108&yi;s{j)31fC|4s2q;7uP3s#H}2VAJ3bQQ{^-fxP#+b zhGG?pC{?a{g({VCfYxh$ECOz0F4=*zF{Ktk6yrGHgc?u{uYDIP51rATx0z}dM@p(2 zYN|{+i7`p`mbp&~(-IPFUn*1lbf|F+8k#!`O-rjzuFzO^y0jk0H8ZK=@1xhpN4N_P zX@2V-fe>>1HG;_h**!uBU5Y#OutK$)RZM5&Z{BfRJJZIN4`KnxL8;=*FQ1x9Yn=$4kzv0`; z7@rn;Qyg)F^LcyF)GLk4gAa#|R1yO_Yfj6UCLO&bgR4p+w&IWM<=U+IQ~?Z#OExfn zc4}JiUFfC`9*gM2M2>LZqSNZL*O~?kphyaiCLTKDwI7*`gJA9y33l}w)A-$~mnK$}2AO*Xo*vPhcY>5K zbGv}Qgdy_Rys|~lCFdm8C7!cR9z=A-__E`lB0|9LYcXp(EYFmR0Bn&&_8m|5kBDgR zj_Fm7>p{z(l>Yto?ST@@cVyhlC!xl&o!Z5;y&3`~Eg_mLTaL`1bV27