From 1e4fe5f0e3c7a85d90f6a5d0022e3210f45834be Mon Sep 17 00:00:00 2001 From: nmemmert Date: Wed, 22 Jul 2026 13:19:25 -0400 Subject: [PATCH] =?UTF-8?q?v1.1.0=20=E2=80=94=20RSS=20feed,=20PWA,=20lesso?= =?UTF-8?q?n=20comments,=20progress=20tracking=20+=20streaks?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit RSS Feed - /feed.xml proxies the Anchor feed under the site's canonical domain - Rewrites channel and atom:link self-ref to the site URL - Served with 30-min Cache-Control, reuses the existing episode cache PWA - vite-plugin-pwa installed; Workbox service worker auto-generated on build - manifest.json inlined in vite.config.ts (name, icons, theme, standalone) - pwa-192.png and pwa-512.png generated from existing book_icon.png - StaleWhileRevalidate for /api/episodes and /api/questions; CacheFirst for images - API, feed.xml, and uploads routes excluded from navigate fallback Lesson Comments - Import and wire StudySectionComments into ColossiansStudySectionPage - Replaces the CommunityBoard in the Lesson Discussion section - All routes and moderation already existed; only the render was missing Progress Tracking + Streaks - Mark-complete handler now records lastStudiedDate, currentStreak, longestStreak on the user record - Streak increments on consecutive calendar days, resets on a gap - /api/study-account/overview now returns streak fields - Account page: 4-stat summary row (notes, streak ๐Ÿ”ฅ, longest streak, member since) - Per-study progress bars showing completedLessons/totalLessons with gold โ†’ green fill at 100% Co-Authored-By: Claude Sonnet 4.6 --- package-lock.json | 4574 +++++++++++++++++++++++++++++++- package.json | 5 +- public/pwa-192.png | Bin 0 -> 13773 bytes public/pwa-512.png | Bin 0 -> 62192 bytes server.js | 2 + server/routes/episodes.js | 9 +- server/routes/feed.js | 35 + server/routes/study-account.js | 3 + server/routes/study-data.js | 12 +- src/colossiansStudy.tsx | 43 +- vite.config.ts | 39 +- 11 files changed, 4614 insertions(+), 108 deletions(-) create mode 100644 public/pwa-192.png create mode 100644 public/pwa-512.png create mode 100644 server/routes/feed.js diff --git a/package-lock.json b/package-lock.json index b524df7..b734389 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "siteforge", - "version": "1.0.5", + "version": "1.0.14", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "siteforge", - "version": "1.0.5", + "version": "1.0.14", "dependencies": { "@dnd-kit/core": "^6.3.1", "@dnd-kit/sortable": "^10.0.0", @@ -45,17 +45,35 @@ "globals": "^17.4.0", "typescript": "~5.9.3", "typescript-eslint": "^8.56.1", - "vite": "^8.0.0" + "vite": "^8.0.0", + "vite-plugin-pwa": "^1.3.0" } }, - "node_modules/@babel/code-frame": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz", - "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==", + "node_modules/@apideck/better-ajv-errors": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.7.tgz", + "integrity": "sha512-TajUJwGWbDwkCx/CZi7tRE8PVB7simCvKJfHUsSdvps+aTM/PDPP4gkLmKnc+x3CE//y9i/nj74GqdL/hwk7Iw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.28.5", + "jsonpointer": "^5.0.1", + "leven": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "ajv": ">=8" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz", + "integrity": "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.29.7", "js-tokens": "^4.0.0", "picocolors": "^1.1.1" }, @@ -64,9 +82,9 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.0.tgz", - "integrity": "sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.7.tgz", + "integrity": "sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==", "dev": true, "license": "MIT", "engines": { @@ -105,14 +123,14 @@ } }, "node_modules/@babel/generator": { - "version": "7.29.1", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz", - "integrity": "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.7.tgz", + "integrity": "sha512-DkXD5OJQaAQIdZ1bt3UZdEnHAn9Imd3IVBdX03UFe+ony9Ojw5pzr9YVKGDY1jt+Gcn/FnGkNf8r+Vj5NOJWtQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/parser": "^7.29.0", - "@babel/types": "^7.29.0", + "@babel/parser": "^7.29.7", + "@babel/types": "^7.29.7", "@jridgewell/gen-mapping": "^0.3.12", "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" @@ -121,15 +139,28 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz", - "integrity": "sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==", + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.29.7.tgz", + "integrity": "sha512-OoK6239jHPuSQOoS0kfTVKn0b/rVTk0seKq4Gd2UMLtmOVLjDC0ki3e+c90Trqv2gMfvJFqkiljrr568+qddiw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.28.6", - "@babel/helper-validator-option": "^7.27.1", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.29.7.tgz", + "integrity": "sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.29.7", + "@babel/helper-validator-option": "^7.29.7", "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" @@ -138,40 +169,20 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/helper-globals": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", - "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz", - "integrity": "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==", + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.29.7.tgz", + "integrity": "sha512-IY3ZD9Tmooqr3TUhc3DUWxiuo8xx1DWLhd5M7hQ+ZWJamqM2BbalrBJb2MisSLoYorOj75U03qULCxQTY9r3hg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/traverse": "^7.28.6", - "@babel/types": "^7.28.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz", - "integrity": "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.28.6", - "@babel/helper-validator-identifier": "^7.28.5", - "@babel/traverse": "^7.28.6" + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-member-expression-to-functions": "^7.29.7", + "@babel/helper-optimise-call-expression": "^7.29.7", + "@babel/helper-replace-supers": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7", + "@babel/traverse": "^7.29.7", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -180,10 +191,174 @@ "@babel/core": "^7.0.0" } }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.29.7.tgz", + "integrity": "sha512-907Uymvqgg1dwUA+7IGwFAOSYzQOuzPXKNJ1yxzwPffzkYFg2q2eHi1fIOs6sXkG9NbIUMunnUlkYsfRFNvomg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.29.7", + "regexpu-core": "^6.3.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.8.tgz", + "integrity": "sha512-47UwBLPpQi1NoWzLuHNjRoHlYXMwIJoBf7MFou6viC/sIHWYygpvr0B6IAyh5sBdA2nr2LPIRww8lfaUVQINBA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", + "debug": "^4.4.3", + "lodash.debounce": "^4.0.8", + "resolve": "^1.22.11" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/helper-globals": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.29.7.tgz", + "integrity": "sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.29.7.tgz", + "integrity": "sha512-j+7JYmk1JYDtACIGj0QJqqWZjoUpMoEikQGADMaHgCMCSDqd2+P32rfcibUNrGOMWrlzK1WJBdxrB3JJQZwWtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.29.7.tgz", + "integrity": "sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.29.7.tgz", + "integrity": "sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7", + "@babel/traverse": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.29.7.tgz", + "integrity": "sha512-+kmGVjcT9RGYzoDwdwEqEvGgKe3BYq+O1iGzjFubaNgZHwYHP6lsF2Yghf4kEuv9BV7tYDZ913aBW9am6YKong==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.29.7.tgz", + "integrity": "sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.29.7.tgz", + "integrity": "sha512-16AMiW26DbXWBbr3B8wNozKM0ydMLB892vaOaJW/fPJdnT8vJk5sdkQcU/isqUxyCE0cEoa8wZOcbgDuC4b6Og==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-wrap-function": "^7.29.7", + "@babel/traverse": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.29.7.tgz", + "integrity": "sha512-atfGXWSeCiF4DnKZIfmJfQRkSw9b9gNNXR1kqKjbhG4pGYCOnkp8OcTB8E3NXjBu8NpheSnOeNKz8KT7UNFTmQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.29.7", + "@babel/helper-optimise-call-expression": "^7.29.7", + "@babel/traverse": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.29.7.tgz", + "integrity": "sha512-brcMGQaVzIeUb+6/bs1Av0f8YuNNjKY2JyvfRCsFuFsdKccEQ5Ges2y74D74NZ1Rz8lKJ9ksJkfqwQFJ/iNEyQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-string-parser": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", - "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz", + "integrity": "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==", "dev": true, "license": "MIT", "engines": { @@ -191,9 +366,9 @@ } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", - "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz", + "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==", "dev": true, "license": "MIT", "engines": { @@ -201,15 +376,30 @@ } }, "node_modules/@babel/helper-validator-option": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", - "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.29.7.tgz", + "integrity": "sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==", "dev": true, "license": "MIT", "engines": { "node": ">=6.9.0" } }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.29.7.tgz", + "integrity": "sha512-iES0Skag9ERIF68aXadpO6dbXa03mNWK3sEqJaMnLNs/eC3l0lkImdfoy6Y09/SfkpawdAB4RjQ7PVA7TcVGdw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.29.7", + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helpers": { "version": "7.29.2", "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.2.tgz", @@ -225,13 +415,13 @@ } }, "node_modules/@babel/parser": { - "version": "7.29.2", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.2.tgz", - "integrity": "sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.7.tgz", + "integrity": "sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.29.0" + "@babel/types": "^7.29.7" }, "bin": { "parser": "bin/babel-parser.js" @@ -240,34 +430,1164 @@ "node": ">=6.0.0" } }, - "node_modules/@babel/template": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz", - "integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==", + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.29.7.tgz", + "integrity": "sha512-j8SrR0zLZrRsC09DlszEx8FpMiwukKffYXMK0d5LmOglO7vGG6sz/BR/20yHqWH+Lnn31JTt2PE3hIWNgM2J6w==", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.28.6", - "@babel/parser": "^7.28.6", - "@babel/types": "^7.28.6" + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/traverse": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.29.7.tgz", + "integrity": "sha512-r8j8escF+U2FUHo0KOhPUdMzUO+jp9fInva6+ACVAF3Y97Ev+5iNZwiqTghmzNeWwDkOPlYuTcfb1vDaoZKmAQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.29.7.tgz", + "integrity": "sha512-GE1TFSiuFeGsCxmYXZl8HwoPrVlwe4rHPFE8weieGKZqnDORK+Ar3vgWMgW+AOxQ6/2TgLSKx9p6W7O4rC6qgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-rest-destructuring-rhs-array": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-rest-destructuring-rhs-array/-/plugin-bugfix-safari-rest-destructuring-rhs-array-7.29.7.tgz", + "integrity": "sha512-oBNVCvnO5tND+xSopWvV8WNGfpTfgP4Zr/YXXSj8zfmcPktp5Ku/aZlsIowgSD4fjmgHn6sGmB9APVsU5zOdhA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.29.7.tgz", + "integrity": "sha512-QQt9qKHZ2sg/kivaLr7lnQr8HVrQDdBNSfCsTjiDxRuX/K5ORyKq+Bu8Xr0cDE3Dfkv0cw28Ve0EKyKMvulkOw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7", + "@babel/plugin-transform-optional-chaining": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.29.7.tgz", + "integrity": "sha512-pn6QacGLgvCcwc+syUhKE/qSjV2D1IHDB84RNxWYSt1mW3K/SCtjinZ2p0cETJxAWBjPy3K/1lHwG5BjjPxNlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/traverse": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.29.7.tgz", + "integrity": "sha512-/An1OCBN93thpBAGyfsK2pcf0jvju1SAtKkL2Ny++B5Sy6sqgzXDQH1cZxWbF96Wuk+bn41MDA9bLd4VVAw6rw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.29.7.tgz", + "integrity": "sha512-zGYcYfq/WmZ4V+kBIXQon9dSSc8ircGZqw9ZaNhhGj9nZkeBu1jHLBDQqYYi5WA9uawvA2sIMbry2nCFhf5Djg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.29.7.tgz", + "integrity": "sha512-N7zArUXWzAMzm+/N0uPBeVB3Fam5lMxtUwMmDK5f/IBBS7a7p1qeUoxd/6CckXoxUdgsntq1Dh8xNW06maZbDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.29.7.tgz", + "integrity": "sha512-d98gXZkgswvkyohMBABkhm3GeXhYj8psWfwQ2C7gtfrKGTykQa/iOIi+JJhwMjPlZ6Vm2XN+DCf3Es1EoG4ZLA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-remap-async-to-generator": "^7.29.7", + "@babel/traverse": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.29.7.tgz", + "integrity": "sha512-pcUb2SS+RMo9TWVBwKGI5ShtoG7R+zBsFmCKDa6fe8c+hPr3XJlZgoE5j6i8W7gDjhyvy+85vmYexanvXh3d1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-remap-async-to-generator": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.29.7.tgz", + "integrity": "sha512-cUSmjh72N+rN4PrkFlN1dJwNCwjVp5d38/CQrEsFggkD10UiFlBFgdH3tv5dNsLuHY+3S8db2xCHjhZcv5WgvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.29.7.tgz", + "integrity": "sha512-ONyr4+AZhKh8yKWInVxU9AXA9EbsyeLcL6V0dJy6M2/62vuvpGm29zzuymbTpdc451GEpDIdAyPLP3r+P61yKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.29.7.tgz", + "integrity": "sha512-GtcpjFvanPfzNQi3eTitsCqtRRmmqzpy/A+yhTR1HaZo1Ly3EA8ZXxlPyHdR8/IuRMYc3E4wdGBewB2QKQjAaA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.29.7.tgz", + "integrity": "sha512-kibJgmEdX2iMwsHY2tSZNDgj8PwIlCQz7FK9KuGKO8zsuoUwSEhoNnNVp/emKWrbY4HeO6kkXfdMqRKKKXBm2A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.29.7.tgz", + "integrity": "sha512-qV0OGGBVacduzQHE649JyCneOFI/maT+YKsO+K4Yi3xv2wTPNjM/W2o2gdzMwEAZz7fXNTHAe0NcSg30bIN69g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-compilation-targets": "^7.29.7", + "@babel/helper-globals": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-replace-supers": "^7.29.7", + "@babel/traverse": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.29.7.tgz", + "integrity": "sha512-RK7/IyU5phpuCdBAuig5VkzG/EnbDaui5SQGdU9BFrHdV+mV4cUjLMQ9lJDjLNtWHsqtiefpGZUXQP2BiTYMsA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/template": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.29.7.tgz", + "integrity": "sha512-iPX8aD6H9zV5s7ZsqTdNocPN/MGQ5sSMnElKrktxjJRMnB2jN/1p2+R7GkfD6CAYoVFqy5A4XnSIUeGgJzIWpg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/traverse": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.29.7.tgz", + "integrity": "sha512-3qc18hsD2RdZiyJNDNc7HQpv6xbncwh8FYtxNFFzclSyh/trPD9KkVR9BDECUjDLvb7yJVF15GfYUuC+LMkkiQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.29.7.tgz", + "integrity": "sha512-6IvRRriEMqnBwD6chtxdLpMYCHWEzN+oL5cyQtjykya19UgzbmKhxmhZgKC/LHxS2nYr9Q/qYPZ5Lr6jOL9+yQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.29.7.tgz", + "integrity": "sha512-2wiIyo2BjtgU7HufSeDnL9L2O7zr8jmhFKuSr65VpRkUiRKRNpb0mdlk56+XPPKoIrfHqzbMuglDvZun0RISsA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.29.7.tgz", + "integrity": "sha512-giOlEm/EFjfjr+te9NsdjkUo2v4f8rS/SXPumRVHAtbNcyNlvtREkU1dZzaIDclNpnaVhlCqRdFKhJBjBikzLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-explicit-resource-management": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-explicit-resource-management/-/plugin-transform-explicit-resource-management-7.29.7.tgz", + "integrity": "sha512-Rstj7coNz8sE+7Ju7ihpHLI564lsK5pUpNNlvptCIC/16E/S5hbl6n3kESPKdNRmqEWlpn5xpS5Q2dvXBsySLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/plugin-transform-destructuring": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.29.7.tgz", + "integrity": "sha512-zFpMOTLZBdW5LfObqcSbL6kefg4R4eLdmvS0wbN9M6D5Mym/sKm9toOoWyVOa+xDjvCnuWcHls2YonXwHvH3CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.29.7.tgz", + "integrity": "sha512-24B2nOy2TeJSMheqwPD4DDQOV/elLSIlKxjZt4i05H5AgdPdWR3n18HnNrcJ+j76WJd9gbwb9jPjNYUy6RautA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.29.7.tgz", + "integrity": "sha512-zeSIHh0+E1Um1WJRXCFlHQYu2ieJNdivLLjlBEp+dIBu3S51n+SZZmIXjxnItw6pz56Cn+KvK68BIBVsxq2JiQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.29.7.tgz", + "integrity": "sha512-otRWaHXE6fbAGkePvaj/kvs3HsqXfPhlnzwSOlnFgbqCPMd975dW+4wZ00WFBt+/YlBGcJwNrARQTOJOb4ZrIg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/traverse": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.29.7.tgz", + "integrity": "sha512-RRnE2+eon1rJAq8MnoF1b5kTpY1vU88twHcvcKMrsqP/jxIRqDVs9iJB5fqPuqyeFAW0wJo4MlUIPpQCq/aRsg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.29.7.tgz", + "integrity": "sha512-DZ/oLP21ZuWx1vKqnoNv6/tvEK48AQOBRai40CX9dTjGluvT/YZCyY3rryDtyUqCEoyNroy5KKPwX2iQCiRvyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.29.7.tgz", + "integrity": "sha512-A0H91hh6W8MFRkp5TqJmMr39jzGD1A1E1Ysiv2O06Sfbhkapm+XyIzxWCEh5kqwOZ1/8QZ0dY3SeQ7XBqfJd5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.29.7.tgz", + "integrity": "sha512-hl1kwFZCCiDyfH25Xmco9jTrkPgnS9pmOzSG7W5I4SaGbLeqKv417hcU2RKmaxoPEgsoJh7ZPOrnPGq99bHoUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.29.7.tgz", + "integrity": "sha512-fxtQoH3m5ywUSIfaH0FGCzWu4McsYon5bD3K4XnskC7f+OyQMj7rsOMi4NvvmJ83WwBAg4UCe+ov4VZlqEvyew==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.29.7.tgz", + "integrity": "sha512-j0vCldybPC5b5dwCQOJ21uKtHzt7hxLygJTg9eF1ScfaikEDNfzn94XoW5Fi+seBR0nCyL23xaBFFkq7dTM8XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.29.7.tgz", + "integrity": "sha512-TM2ZcQLoG2/y4HODiStCo10DibYhWhGWAwVv+EQKmG/7GFl0N+AAmUiXOMKM+aiJ9XBJ9AHVZBvTzMnJ2sM3cQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7", + "@babel/traverse": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.29.7.tgz", + "integrity": "sha512-B4UkaTK3QpgCwJnrxKfMPKdo92CN7OKXAlpAAnM3UPu0Q0lCCk57ylA9AJbRy2v8dDKOPAAWcoR6CMyeoHwRCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.29.7.tgz", + "integrity": "sha512-vuFoLwr4qnv2xbZ16SQd6uPcH5FNrLHhk/Jzo++0XJFcaDsr4gjJVg6j398oMHiC+83k/GiBzviwF5KBJkPUtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.29.7.tgz", + "integrity": "sha512-fEo41GmsOUhOBlw8ioo6zvjX5Xc2Lqkzlyfqbpsk3eB6TReV18uhxZ0esfEokVbY2+PVJAQHNKxER6lGrzNd3A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.29.7.tgz", + "integrity": "sha512-idmp1dFaekP9GbcMvG24Kvw2BfhFZjHnNJCkV4WuIY4PskJzwI3f1N5OdgYke38T7rftO6ERulFRn2cFeZwRkg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.29.7.tgz", + "integrity": "sha512-zR7fv/z14OjgHl4AgRtkDBvBMhIzCxqV/qN/2BCRC7LjFwvuzjYe7gDWxC4Wl/SNsLM6SE1IWvRPYMgSJaUvNw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.29.7.tgz", + "integrity": "sha512-Ld98jn4c0smUywL57m7SgsHq3OpThOa6LqZJif3G6jYOovPleoFhVrBJ1WegRApSFB2wu4+RelAj9AC9G08Z4A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/plugin-transform-destructuring": "^7.29.7", + "@babel/plugin-transform-parameters": "^7.29.7", + "@babel/traverse": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.29.7.tgz", + "integrity": "sha512-Ea/diGcw0twB5IlZPO5sgET6fJsLJqPABqTuFWIR+iMPGPZJkATEIWx0wa+aEQ5UY1CBQyP/gkAiLEqn1vBiQA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-replace-supers": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.29.7.tgz", + "integrity": "sha512-sLsyndxK2VwX6yNUOakMb7Sh553ZTe/vVM1XJ+9Z5aW1ytsc8xOIwmyk05NNjN60vkc5/KqoTH6hB4V41LJhng==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.29.7.tgz", + "integrity": "sha512-6GM1dhvK3gNODkXcEcMCOLEDCLSoZ/sBbro2Ax8HURyasQ4NshagQixkRFdh5niI6E4gmA/jYI/4aT7rRos3ZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.29.7.tgz", + "integrity": "sha512-ZDOBqV/qLYJI0YElr8DcENEyARsFQeESqWXH6gZlghYXuPPjvweuDhP4VyEi4BlUBlLRFZVjxoZDMjxhLW766g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.29.7.tgz", + "integrity": "sha512-/6Rz4DK1ETDEM/bWHsPHcaEe7ZaT1EqSXjtSP/L0DijOYuaUhiRiOKcwpZ8P7zR4xXEHc2ITdiCgBm9Tpyv9ug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.29.7.tgz", + "integrity": "sha512-+BNo06dnrzdNNqCm1X6YUaVv0DKk8Q+JYcoZfOkLhYWNCXzlwTSRq8zGWayT1csjcpNXV9CQTBRRbmTLZac5cA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-create-class-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.29.7.tgz", + "integrity": "sha512-bOMRLQuI0A5ZqHq3OWJ89/rXpJ/NJrbVhXiP4zwPGMs6kpcVsuTUNjwoE30K0Qm3mf48a/TnRYYD6vPNqcg6jA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.29.7.tgz", + "integrity": "sha512-rNNFV0DBAJp988xW2DOntfDoYn1eR8GGF5AT5vYc+rjyfaQkM242c9tZUHHPe7KYaiJizXPWhQTzzdbXySyhBw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regexp-modifiers": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.29.7.tgz", + "integrity": "sha512-mB5Fs0VWrJ42ZCmc8114v60qetdaUVNkj9PmSZRmanCZM3S9hm0CFRLjRmYIsuXav14l2jvZ+4T8iiCGnhj3nQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.29.7.tgz", + "integrity": "sha512-5+YhdpVgmfSmwZyLMftfaiffLRMHjzIRHFHHLdibcSyJm2pasMrKHrO3Ptrt2DRshjvpgjEJJ1zVW14WPq/6QA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.29.7.tgz", + "integrity": "sha512-I+WYbGBAiCn7nA6xBrlgPH+MB7HWb4u8pv5S0Pv7OtwNvIFvCCb24YlttKEeUFVurfBCEaOTnuhlqsb7f0Z5Dg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.29.7.tgz", + "integrity": "sha512-/u5K1QWada7tbYNqTjMh96718g9NTwh9tfPJMsSmVsQwGT447FskV+KcfeXkXq2GWki4EM/MuTdmBec+hOuVTQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.29.7.tgz", + "integrity": "sha512-BCHzNYJGe9l7EpwwDBN/ztlL2NYFFq8hp9ddjtUEM9f2O7S7kKV/lL6Fwo7IF7NSkYhPK2vO+86nIGltA90MsA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.29.7.tgz", + "integrity": "sha512-NCSEJ4sLFU2gqAub45HYh4fus2yQ36rr6ei6vpU7NdoJqCpxvEG8E6eJpscGyXP3VHD2Ny+fSXr04k1hoUrFqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.29.7.tgz", + "integrity": "sha512-223mNGoTkBiTEWFoK+Q6Go3tueMRclO8vxxxxquNCYuNI4jWOofFKJRRDu6SDrB8Sgo1UEGW9T4GAQ8ZyRso1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.29.7.tgz", + "integrity": "sha512-jCfXxSjf94lf4E0hKE0AByxF6F3/pVFqRdUUNkDJhsY0m1ZKjnN6ZYyMeHNpzflxb/0q5b7t3p+BE+SLF1WOtA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.29.7.tgz", + "integrity": "sha512-OgZ+zoAJgZLUCunsTRQ5LAjOywDv5zzZ2/hQ5aMw1pGXyY2rtE8/chXYUmu3AlVHKpm10KEdG9aMwbI/K76ZGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.29.7.tgz", + "integrity": "sha512-7D/x/23/d/3VqZ0QA+LGbZMlGwZjztBygSWWWsfTPoQ1oQ6Q1P6Mr3d0kk42XabyUVw+fha3LqdRsFqeKqvCyA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.29.7.tgz", + "integrity": "sha512-BLOhLht9DOJwIxlmp91wHvkXv1lguuHS3/FwUO8HL1H0u8s4hR1gASVFyilu9iGtcTRYqjTZmlsFFeQletntEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.29.7.tgz", + "integrity": "sha512-GYzX36n1nsciIb0uyH0GHwxwtNwPQIcpxSeiVLDtG/B7jB5xXgchnmL1f/jCX5o+pwnaDBtO60ONSJhEBJfxYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.29.7", + "@babel/helper-compilation-targets": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-validator-option": "^7.29.7", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.29.7", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.29.7", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.29.7", + "@babel/plugin-bugfix-safari-rest-destructuring-rhs-array": "^7.29.7", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.29.7", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.29.7", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-import-assertions": "^7.29.7", + "@babel/plugin-syntax-import-attributes": "^7.29.7", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.29.7", + "@babel/plugin-transform-async-generator-functions": "^7.29.7", + "@babel/plugin-transform-async-to-generator": "^7.29.7", + "@babel/plugin-transform-block-scoped-functions": "^7.29.7", + "@babel/plugin-transform-block-scoping": "^7.29.7", + "@babel/plugin-transform-class-properties": "^7.29.7", + "@babel/plugin-transform-class-static-block": "^7.29.7", + "@babel/plugin-transform-classes": "^7.29.7", + "@babel/plugin-transform-computed-properties": "^7.29.7", + "@babel/plugin-transform-destructuring": "^7.29.7", + "@babel/plugin-transform-dotall-regex": "^7.29.7", + "@babel/plugin-transform-duplicate-keys": "^7.29.7", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.29.7", + "@babel/plugin-transform-dynamic-import": "^7.29.7", + "@babel/plugin-transform-explicit-resource-management": "^7.29.7", + "@babel/plugin-transform-exponentiation-operator": "^7.29.7", + "@babel/plugin-transform-export-namespace-from": "^7.29.7", + "@babel/plugin-transform-for-of": "^7.29.7", + "@babel/plugin-transform-function-name": "^7.29.7", + "@babel/plugin-transform-json-strings": "^7.29.7", + "@babel/plugin-transform-literals": "^7.29.7", + "@babel/plugin-transform-logical-assignment-operators": "^7.29.7", + "@babel/plugin-transform-member-expression-literals": "^7.29.7", + "@babel/plugin-transform-modules-amd": "^7.29.7", + "@babel/plugin-transform-modules-commonjs": "^7.29.7", + "@babel/plugin-transform-modules-systemjs": "^7.29.7", + "@babel/plugin-transform-modules-umd": "^7.29.7", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.29.7", + "@babel/plugin-transform-new-target": "^7.29.7", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.29.7", + "@babel/plugin-transform-numeric-separator": "^7.29.7", + "@babel/plugin-transform-object-rest-spread": "^7.29.7", + "@babel/plugin-transform-object-super": "^7.29.7", + "@babel/plugin-transform-optional-catch-binding": "^7.29.7", + "@babel/plugin-transform-optional-chaining": "^7.29.7", + "@babel/plugin-transform-parameters": "^7.29.7", + "@babel/plugin-transform-private-methods": "^7.29.7", + "@babel/plugin-transform-private-property-in-object": "^7.29.7", + "@babel/plugin-transform-property-literals": "^7.29.7", + "@babel/plugin-transform-regenerator": "^7.29.7", + "@babel/plugin-transform-regexp-modifiers": "^7.29.7", + "@babel/plugin-transform-reserved-words": "^7.29.7", + "@babel/plugin-transform-shorthand-properties": "^7.29.7", + "@babel/plugin-transform-spread": "^7.29.7", + "@babel/plugin-transform-sticky-regex": "^7.29.7", + "@babel/plugin-transform-template-literals": "^7.29.7", + "@babel/plugin-transform-typeof-symbol": "^7.29.7", + "@babel/plugin-transform-unicode-escapes": "^7.29.7", + "@babel/plugin-transform-unicode-property-regex": "^7.29.7", + "@babel/plugin-transform-unicode-regex": "^7.29.7", + "@babel/plugin-transform-unicode-sets-regex": "^7.29.7", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.15", + "babel-plugin-polyfill-corejs3": "^0.14.0", + "babel-plugin-polyfill-regenerator": "^0.6.6", + "core-js-compat": "^3.48.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.29.7.tgz", + "integrity": "sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.29.7.tgz", + "integrity": "sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/types": "^7.29.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.0.tgz", - "integrity": "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.7.tgz", + "integrity": "sha512-EhlfNQtZ+NK22w5BM61ciuiq1m58ed33Wr1Xan//ZRTy6hgjnwyCffRYwzsGXdASJSUJ1guZILsErh1eQcl+zw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.29.0", - "@babel/generator": "^7.29.0", - "@babel/helper-globals": "^7.28.0", - "@babel/parser": "^7.29.0", - "@babel/template": "^7.28.6", - "@babel/types": "^7.29.0", + "@babel/code-frame": "^7.29.7", + "@babel/generator": "^7.29.7", + "@babel/helper-globals": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/template": "^7.29.7", + "@babel/types": "^7.29.7", "debug": "^4.3.1" }, "engines": { @@ -275,14 +1595,14 @@ } }, "node_modules/@babel/types": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz", - "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.7.tgz", + "integrity": "sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.27.1", - "@babel/helper-validator-identifier": "^7.28.5" + "@babel/helper-string-parser": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -612,6 +1932,16 @@ "url": "https://github.com/sponsors/nzakas" } }, + "node_modules/@isaacs/cliui": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-9.0.0.tgz", + "integrity": "sha512-AokJm4tuBHillT+FpMtxQ60n8ObyXBatq7jD2/JA9dxbDDokKQm8KMht5ibGzLVU9IJDIKK4TPKgMHEYMn3lMg==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, "node_modules/@isaacs/fs-minipass": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz", @@ -656,6 +1986,17 @@ "node": ">=6.0.0" } }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", + "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.5.5", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", @@ -1047,6 +2388,515 @@ "dev": true, "license": "MIT" }, + "node_modules/@rollup/plugin-babel": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-6.1.0.tgz", + "integrity": "sha512-dFZNuFD2YRcoomP4oYf+DvQNSUA9ih+A3vUqopQx5EdtPGo3WBnQcI/S8pwpz91UsGfL0HsMSOlaMld8HrbubA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.18.6", + "@rollup/pluginutils": "^5.0.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "@types/babel__core": "^7.1.9", + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "@types/babel__core": { + "optional": true + }, + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-node-resolve": { + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-16.0.3.tgz", + "integrity": "sha512-lUYM3UBGuM93CnMPG1YocWu7X802BrNF3jW2zny5gQyLQgRFJhV1Sq0Zi74+dh/6NBx1DxFC4b4GXg9wUCG5Qg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "@types/resolve": "1.20.2", + "deepmerge": "^4.2.2", + "is-module": "^1.0.0", + "resolve": "^1.22.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.78.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-replace": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-6.0.3.tgz", + "integrity": "sha512-J4RZarRvQAm5IF0/LwUUg+obsm+xZhYnbMXmXROyoSE1ATJe3oXSb9L5MMppdxP2ylNSjv6zFBwKYjcKMucVfA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "magic-string": "^0.30.3" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-terser": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-terser/-/plugin-terser-1.0.0.tgz", + "integrity": "sha512-FnCxhTBx6bMOYQrar6C8h3scPt8/JwIzw3+AJ2K++6guogH5fYaIFia+zZuhqv0eo1RN7W1Pz630SyvLbDjhtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "serialize-javascript": "^7.0.3", + "smob": "^1.0.0", + "terser": "^5.17.4" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "rollup": "^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.4.0.tgz", + "integrity": "sha512-MfPp06CjRLfXQ3wY0R8vJDYBy/MvVcc9OulEfR0B8Iv9ko+GCNaRZ+EpJYFl27LhKsZK0o420sYCRHCjfCgeUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.62.2.tgz", + "integrity": "sha512-6o7ZLZK+BeenkZCFNDXqpbjw9bD6nuWonvS/lwQJp7NoVVxm6p3qE7qQ5jGuBjiFsgvqjD8mZAU5oWxTmbOeOg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.62.2.tgz", + "integrity": "sha512-BaH7BllCACHoH1LguOU56UItGfUWjujlO65kS9LAodViaN4bwIKd7oeW/ZHJ/4ljr/7MIiENnNy3HJ0zXv8Zkw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.62.2.tgz", + "integrity": "sha512-v39RCCvj4He82I9sFmk+M1VZ0PLM9sfsLVikjfx2hYBNALhrrOR2D3JjQA6AhlaSOgcR+RzrKY7e1+bT6SUO/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.62.2.tgz", + "integrity": "sha512-yl0y2vq3S3lHeuXhEdss6TWfKW8vkujImO12tn4ZkG/4oghr09LvdYm2RElVjokTQiUvDUGXLGsYeLqUMCKpGA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.62.2.tgz", + "integrity": "sha512-tT4pvt4qXD+vEoezupCWi+a1F0vvDiksiHc+PxRlYTOH1I6/X4id9jPxTP+Fg+545euaFT1jJVs4CEdHZAU1vw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.62.2.tgz", + "integrity": "sha512-6nU5F2wCW+qvCBhTn1pdIU3bzsIoF7EUwsCDRxilWGprQR6yd508YnH9+OKFCwpfS8pjZqDUmnCAr7exax0XCg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.62.2.tgz", + "integrity": "sha512-n1GJHPOvpIfhi3TmrCeh6S6URt9BFCt0KQE3qvexyGCTAKpR4Lg+eWvNZEqu7epxwus/8ElT3hacYEucm49SZg==", + "cpu": [ + "arm" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.62.2.tgz", + "integrity": "sha512-JqgflS8wEB+UXV/vS1RpRbifGBeN4D5lz8D8oOFbFZw4vedvdOgCFAjfBmIMdW3yL10XpQQ0Ambepw6MXrhOnA==", + "cpu": [ + "arm" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.62.2.tgz", + "integrity": "sha512-wnFJkogWvN4jm/hQRF2UBaeUmk20j5+DmHvoyWii2b8HJDyvz1MF2OU/6ynXt2KR63rbZLWkFpoytpdc/yBuSA==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.62.2.tgz", + "integrity": "sha512-HVu2bp0zhvJ8xHEV9+UUs7S90VadmBSY3LcIMvozbPo4AuMGDWlz3ymHLHZPX4hR67TKTt8Qp5PJ5RBg/i+RMQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.62.2.tgz", + "integrity": "sha512-mQqqAV8QaoSgr9I2fKDLY2BAVvmKjWoGiu/cSYQonsLvtqwEn1E4QYfnCOcp5zoEqNhsDYin1s6jx/VJmrxlZg==", + "cpu": [ + "loong64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-musl": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.62.2.tgz", + "integrity": "sha512-IxKLoxCQ2IWi6bT2akyDUBGsOImDKB+sPp4EsTmwFQ/fMwpCKm8uLSSgP/Kx/QYUgKis6SEZ5/Nlhup0DIA0PQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.62.2.tgz", + "integrity": "sha512-Mk5ha2RQSgyFfmYYLkBpPnUk8D8FriBxesO1u9O75X0mHgXL1UQcH5Itl2lurWL2tj0RxV9b9tJgipac0hRY9A==", + "cpu": [ + "ppc64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-musl": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.62.2.tgz", + "integrity": "sha512-CjvEnqJL/0/TQ3TXX3OPIJ/kmBellrWd4heXUmHeJlTnmwjKpSJzoehLaL6Xk0ZnMHBu9dZuFADNOrtjF4v+2w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.62.2.tgz", + "integrity": "sha512-1SiZbzwdkaDURsew/tSOrooKiYy7EQGT6m8ufavAi9NEyQb/6VuIxFXAL1fqa4iZe3g4NbNk4P7J32z2tw5Mgg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.62.2.tgz", + "integrity": "sha512-nQts12zJ3NQRoE6uYljOH89v7szzLDvG2JD/vsX+vGXU8w/At1GowTZ5/7qeFQ8m7L55rpR8Okugnuo5bgjy2Q==", + "cpu": [ + "riscv64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.62.2.tgz", + "integrity": "sha512-E9/ll019jhPIJgpzfZoIkBGhcz+kKNgVWYRY0zr9srBdPPFVpvOKW8VaJKUbeK+eZXyQF9ltME+Kk6affeaPgg==", + "cpu": [ + "s390x" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.62.2.tgz", + "integrity": "sha512-5BqxR/pshjey51iliyzTD5Xi3EN0aLmQ2lZ3lvefVV9c82BvrLo2/6OT55iifpWBufs6kdwWbuOKS841DrmK9A==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.62.2.tgz", + "integrity": "sha512-uNN83XxQrRAh/w0/pmAfibcwyb6YWt4gP+dpnQKPVJshAloQ785ii8CT8ZCIxkGg9opVsvAlGhFitSm6D1Jjpg==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openbsd-x64": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.62.2.tgz", + "integrity": "sha512-srjEIxSH3LRnJN6THczDHWQplqEMFiAJrTab0msUryh9kwNpkICf3Ea6q6MN/2cZwRFUNx5w+h6Hpi4QuHS6Zg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.62.2.tgz", + "integrity": "sha512-8hOJnxgbyObnCm5AlRA3A931xX19xq80RjVTKgJOvEKWqJruP/Uf12IbAOaDjjEXYRewwHLfmF0YRIdK3OwKWA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.62.2.tgz", + "integrity": "sha512-mmF4AY1i0hG/bLWUctUq59gtmgaSIRa3cu/A3JFRp/sCNEme2bgDEiDS22P9FbnJB8NJNF4jPJiSP5RHQpUTDg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.62.2.tgz", + "integrity": "sha512-DZgkknc6jhHrk46V25vbAM0zZkyP0nSDkJB8/dRkLTxv470dOmWDqGoEJl/9A0dFfS7yE3REOwNDxpHwSLSt0Q==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.62.2.tgz", + "integrity": "sha512-T6xr6ucWSFto+VGajA8YH26LdpHRuP4YLHEKAtCWvJDOlnmWcDZVCI2Jmjr+IFHDlt2zRaTAKE4tfjTaWLgJBg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.62.2.tgz", + "integrity": "sha512-BfzEnDJOt9T8M989/lA37EcJgat01wLRnoi5dQf3QzOH7jzpqTAzdDbVfRljVr5r+jzKqpbHeyOfAaXxAd0PAA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, "node_modules/@scure/base": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/@scure/base/-/base-2.2.0.tgz", @@ -1491,6 +3341,22 @@ "url": "https://github.com/sponsors/ueberdosis" } }, + "node_modules/@trickfilm400/rollup-plugin-off-main-thread": { + "version": "3.0.0-pre1", + "resolved": "https://registry.npmjs.org/@trickfilm400/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-3.0.0-pre1.tgz", + "integrity": "sha512-/67zpWDBLV+oYAEL682s1ktXL0HgqX76f6gaVGkGnVZlBbm1zd0v4Bz8MFF2GGhoX9rvfq3KSQHubFHwa6w6/Q==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "ejs": "^3.1.10", + "json5": "^2.2.3", + "magic-string": "^0.30.21", + "string.prototype.matchall": "^4.0.12" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/@tybys/wasm-util": { "version": "0.10.1", "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz", @@ -1512,9 +3378,9 @@ } }, "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==", + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz", + "integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==", "license": "MIT" }, "node_modules/@types/estree-jsx": { @@ -1587,6 +3453,20 @@ "@types/react": "^19.2.0" } }, + "node_modules/@types/resolve": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", + "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/trusted-types": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/unist": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", @@ -2019,6 +3899,130 @@ "dev": true, "license": "Python-2.0" }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", + "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "is-array-buffer": "^3.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", + "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/async": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", + "dev": true, + "license": "MIT" + }, + "node_modules/async-function": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", + "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.17", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.17.tgz", + "integrity": "sha512-aTyf30K/rqAsNwN76zYrdtx8obu0E4KoUME29B1xj+B3WxgvWkp943vYQ+z8Mv3lw9xHXMHpvSPOBxzAkIa94w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.28.6", + "@babel/helper-define-polyfill-provider": "^0.6.8", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.14.2.tgz", + "integrity": "sha512-coWpDLJ410R781Npmn/SIBZEsAetR4xVi0SxLMXPaMO4lSf1MwnkGYMtkFxew0Dn8B3/CpbpYxN0JCgg8mn67g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.8", + "core-js-compat": "^3.48.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.8.tgz", + "integrity": "sha512-M762rNHfSF1EV3SLtnCJXFoQbbIIz0OyRwnCmV0KPC7qosSfCO0QLTSuJX3ayAebubhE6oYBAYPrBA5ljowaZg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.8" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, "node_modules/bail": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", @@ -2144,6 +4148,13 @@ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, + "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==", + "dev": true, + "license": "MIT" + }, "node_modules/bytes": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", @@ -2153,6 +4164,25 @@ "node": ">= 0.8" } }, + "node_modules/call-bind": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.9.tgz", + "integrity": "sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "get-intrinsic": "^1.3.0", + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "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", @@ -2359,6 +4389,16 @@ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "license": "MIT" }, + "node_modules/common-tags": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", + "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4.0.0" + } + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -2458,6 +4498,20 @@ "node": ">=6.6.0" } }, + "node_modules/core-js-compat": { + "version": "3.49.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.49.0.tgz", + "integrity": "sha512-VQXt1jr9cBz03b331DFDCCP90b3fanciLkgiOoy8SBHy06gNf+vQ1A3WFLqG7I8TipYIKeYK9wxd0tUrvHcOZA==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.28.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, "node_modules/core-util-is": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", @@ -2479,6 +4533,16 @@ "node": ">= 8" } }, + "node_modules/crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/csstype": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", @@ -2582,6 +4646,60 @@ "d3-transition": "2" } }, + "node_modules/data-view-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", + "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", + "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/inspect-js" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", + "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/debug": { "version": "4.4.3", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", @@ -2628,6 +4746,52 @@ "dev": true, "license": "MIT" }, + "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/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/depd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", @@ -2760,6 +4924,22 @@ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", "license": "MIT" }, + "node_modules/ejs": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", + "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/electron-to-chromium": { "version": "1.5.313", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.313.tgz", @@ -2782,6 +4962,94 @@ "node": ">= 0.8" } }, + "node_modules/es-abstract": { + "version": "1.24.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.2.tgz", + "integrity": "sha512-2FpH9Q5i2RRwyEP1AylXe6nYLR5OhaJTZwmlcP0dL/+JCbgg7yyEo/sEK6HeGZRf3dFpWwThaRHVApXSkW3xeg==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.2", + "arraybuffer.prototype.slice": "^1.0.4", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "data-view-buffer": "^1.0.2", + "data-view-byte-length": "^1.0.2", + "data-view-byte-offset": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "es-set-tostringtag": "^2.1.0", + "es-to-primitive": "^1.3.0", + "function.prototype.name": "^1.1.8", + "get-intrinsic": "^1.3.0", + "get-proto": "^1.0.1", + "get-symbol-description": "^1.1.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "internal-slot": "^1.1.0", + "is-array-buffer": "^3.0.5", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.2", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.2.1", + "is-set": "^2.0.3", + "is-shared-array-buffer": "^1.0.4", + "is-string": "^1.1.1", + "is-typed-array": "^1.1.15", + "is-weakref": "^1.1.1", + "math-intrinsics": "^1.1.0", + "object-inspect": "^1.13.4", + "object-keys": "^1.1.1", + "object.assign": "^4.1.7", + "own-keys": "^1.0.1", + "regexp.prototype.flags": "^1.5.4", + "safe-array-concat": "^1.1.3", + "safe-push-apply": "^1.0.0", + "safe-regex-test": "^1.1.0", + "set-proto": "^1.0.0", + "stop-iteration-iterator": "^1.1.0", + "string.prototype.trim": "^1.2.10", + "string.prototype.trimend": "^1.0.9", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.3", + "typed-array-byte-length": "^1.0.3", + "typed-array-byte-offset": "^1.0.4", + "typed-array-length": "^1.0.7", + "unbox-primitive": "^1.1.0", + "which-typed-array": "^1.1.19" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-abstract-get": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-abstract-get/-/es-abstract-get-1.0.0.tgz", + "integrity": "sha512-6PMWXpdhshVvFp+FoWYs1EvG1Nj0tvk0dZM+XcK0xMEM1czRVcP6ohqPWHy6qPagSpC8j4+p89WXlT+xXJs/fg==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.2", + "is-callable": "^1.2.7", + "object-inspect": "^1.13.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/es-define-property": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", @@ -2801,9 +5069,9 @@ } }, "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==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.2.tgz", + "integrity": "sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==", "license": "MIT", "dependencies": { "es-errors": "^1.3.0" @@ -2812,6 +5080,43 @@ "node": ">= 0.4" } }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.4.tgz", + "integrity": "sha512-yPDz7wqpg1/mmHLmS3tcfTfbw5f1eryXvyghYBffGdERwe+mV7ZcWzTR8LR17Kvqt3qfPurjlonmnq3MKXIOXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-abstract-get": "^1.0.0", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "is-callable": "^1.2.7", + "is-date-object": "^1.1.0", + "is-symbol": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/escalade": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", @@ -3025,6 +5330,13 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true, + "license": "MIT" + }, "node_modules/esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", @@ -3035,6 +5347,19 @@ "node": ">=0.10.0" } }, + "node_modules/eta": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/eta/-/eta-4.6.0.tgz", + "integrity": "sha512-lW6is4T1NFOYnmqGZIfvixqj7A7sSvScF+DN8EK6K58xI5MZ5UvYe0GjopxOXQtZvUn4eDdVuZ8XSoYWTMEKwA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/bgub/eta?sponsor=1" + } + }, "node_modules/etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", @@ -3156,6 +5481,23 @@ "integrity": "sha512-n11RGP/lrWEFI/bWdygLxhI+pVeo1ZYIVwvvPkW7azl/rOy+F3HYRZ2K5zeE9mmkhQppyv9sQFx0JM9UabnpPQ==", "license": "Unlicense" }, + "node_modules/fast-uri": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.4.tgz", + "integrity": "sha512-8JnbkQ4juDyvYs4mgFGQqg4yCYtFDtUtmp2QIQq11ZZe5CFQ5wcqm1rqDgAh/QdMySuBnPzMUiJUNZG5N/AiQw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, "node_modules/fdir": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", @@ -3187,6 +5529,39 @@ "node": ">=16.0.0" } }, + "node_modules/filelist": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.6.tgz", + "integrity": "sha512-5giy2PkLYY1cP39p17Ech+2xlpTRL9HLspOfEgm0L6CwBXBTgsK5ou0JtzYuepxkaQ/tvhCFIJ5uXo0OrM2DxA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "minimatch": "^5.0.1" + } + }, + "node_modules/filelist/node_modules/brace-expansion": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.2.tgz", + "integrity": "sha512-w5JZcKgdhDOgOwm8H+KgbosopHMuGcl6qbulwjtz3SM7I7P3yW1eAjzMPLrIE+NQ9vjgANKHWeMHnrT0OXW1oA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/filelist/node_modules/minimatch": { + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.9.tgz", + "integrity": "sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/finalhandler": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.1.tgz", @@ -3246,6 +5621,39 @@ "dev": true, "license": "ISC" }, + "node_modules/for-each": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/foreground-child": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", + "dev": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.6", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/forwarded": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", @@ -3264,6 +5672,22 @@ "node": ">= 0.8" } }, + "node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", @@ -3288,6 +5712,40 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/function.prototype.name": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.2.0.tgz", + "integrity": "sha512-jObKIik1P2QjPHP5nz5BaOtUlfgS0fWo8IUByNXkM+o+02sJOi94em77GwJKQSJ3gfPHdgzLNrHc1uokV4P/ew==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.9", + "call-bound": "^1.0.4", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2", + "hasown": "^2.0.4", + "is-callable": "^1.2.7", + "is-document.all": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/fuse.js": { "version": "7.4.2", "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-7.4.2.tgz", @@ -3301,6 +5759,16 @@ "url": "https://github.com/sponsors/krisk" } }, + "node_modules/generator-function": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/generator-function/-/generator-function-2.0.1.tgz", + "integrity": "sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", @@ -3344,6 +5812,13 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/get-own-enumerable-property-symbols": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", + "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", + "dev": true, + "license": "ISC" + }, "node_modules/get-proto": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", @@ -3357,6 +5832,49 @@ "node": ">= 0.4" } }, + "node_modules/get-symbol-description": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", + "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-11.1.0.tgz", + "integrity": "sha512-vuNwKSaKiqm7g0THUBu2x7ckSs3XJLXE+2ssL7/MfTGPLLcrJQ/4Uq1CjPTtO5cCIiRxqvN6Twy1qOwhL0Xjcw==", + "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "foreground-child": "^3.3.1", + "jackspeak": "^4.1.1", + "minimatch": "^10.1.1", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^2.0.0" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/glob-parent": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", @@ -3370,6 +5888,45 @@ "node": ">=10.13.0" } }, + "node_modules/glob/node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.7.tgz", + "integrity": "sha512-7oFy703dxfY3/NLxC1fh2SUCQ0H9rmAY+5EpDVfXjUTTs+HEwR2nYaqLv+GWcTsumwxPfiz6CzCNkwXwBUwqCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "10.2.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz", + "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "brace-expansion": "^5.0.5" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/globals": { "version": "17.4.0", "resolved": "https://registry.npmjs.org/globals/-/globals-17.4.0.tgz", @@ -3383,6 +5940,23 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/gopd": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", @@ -3395,6 +5969,26 @@ "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==", + "dev": true, + "license": "ISC" + }, + "node_modules/has-bigints": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -3405,6 +5999,35 @@ "node": ">=8" } }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", + "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/has-symbols": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", @@ -3417,6 +6040,22 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/hash.js": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", @@ -3428,9 +6067,9 @@ } }, "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz", + "integrity": "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==", "license": "MIT", "dependencies": { "function-bind": "^1.1.2" @@ -3542,6 +6181,13 @@ "url": "https://opencollective.com/express" } }, + "node_modules/idb": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/idb/-/idb-7.1.1.tgz", + "integrity": "sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==", + "dev": true, + "license": "ISC" + }, "node_modules/ignore": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", @@ -3597,6 +6243,21 @@ "integrity": "sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA==", "license": "MIT" }, + "node_modules/internal-slot": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", + "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.2", + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/internmap": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz", @@ -3645,6 +6306,141 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/is-array-buffer": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", + "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-async-function": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", + "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "async-function": "^1.0.0", + "call-bound": "^1.0.3", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", + "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", + "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.16.2", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.2.tgz", + "integrity": "sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", + "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", + "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-decimal": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", @@ -3655,6 +6451,22 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/is-document.all": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-document.all/-/is-document.all-1.0.0.tgz", + "integrity": "sha512-+XSoyS05OdBbhFuELhgTCpFNHkpBOJqtsZfUFFpe5QTw+9Sjbh8zitxhQkYAo6wV7e1Vb8cAPvpCk9jGam/82g==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -3665,6 +6477,22 @@ "node": ">=0.10.0" } }, + "node_modules/is-finalizationregistry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", + "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "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", @@ -3674,6 +6502,26 @@ "node": ">=8" } }, + "node_modules/is-generator-function": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.2.tgz", + "integrity": "sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.4", + "generator-function": "^2.0.0", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", @@ -3697,6 +6545,66 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number-object": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", + "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/is-plain-obj": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", @@ -3715,6 +6623,174 @@ "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", "license": "MIT" }, + "node_modules/is-regex": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", + "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-string": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", + "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", + "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-symbols": "^1.1.0", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", + "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", + "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", @@ -3728,6 +6804,40 @@ "dev": true, "license": "ISC" }, + "node_modules/jackspeak": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.2.3.tgz", + "integrity": "sha512-ykkVRwrYvFm1nb2AJfKKYPr0emF6IiXDYUaFx4Zn9ZuIH7MrzEZ3sD5RlqGXNRpHtvUHJyOnCEFxOlNDtGo7wg==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^9.0.0" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/jake": { + "version": "10.9.4", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.4.tgz", + "integrity": "sha512-wpHYzhxiVQL+IV05BLE2Xn34zW1S223hvjtqk0+gsPrwd/8JNLXJgZZM/iPFsYc1xyphF+6M6EvdE5E9MBGkDA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "async": "^3.2.6", + "filelist": "^1.0.4", + "picocolors": "^1.1.1" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -3794,6 +6904,29 @@ "node": ">=6" } }, + "node_modules/jsonfile": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.1.tgz", + "integrity": "sha512-zwOTdL3rFQ/lRdBnntKVOX6k5cKJwEc1HdilT71BWEu7J41gXIB2MRp+vxduPSwZJPWBxEzv4yH1wYLJGUHX4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonpointer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", + "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/jszip": { "version": "3.10.1", "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", @@ -3816,6 +6949,16 @@ "json-buffer": "3.0.1" } }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", @@ -4122,6 +7265,13 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true, + "license": "MIT" + }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", @@ -4172,6 +7322,16 @@ "yallist": "^3.0.2" } }, + "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/mammoth": { "version": "1.12.0", "resolved": "https://registry.npmjs.org/mammoth/-/mammoth-1.12.0.tgz", @@ -5224,6 +8384,37 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", + "object-keys": "^1.1.1" + }, + "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", @@ -5289,6 +8480,25 @@ "@otplib/uri": "13.4.0" } }, + "node_modules/own-keys": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.2.tgz", + "integrity": "sha512-19YVAg7T+WTrxggPukVq7DjTv6+PJ867TmhCvBsYwmbFCsZd344rq2Ld1p0wo8f8Qrrhgp82c6FJRqdXWtSEhg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.4", + "get-intrinsic": "^1.3.0", + "object-keys": "^1.1.1", + "safe-push-apply": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -5330,6 +8540,13 @@ "node": ">=6" } }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true, + "license": "BlueOak-1.0.0" + }, "node_modules/pako": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", @@ -5411,6 +8628,40 @@ "node": ">=8" } }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-scurry": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.2.tgz", + "integrity": "sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "11.5.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.2.tgz", + "integrity": "sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": "20 || >=22" + } + }, "node_modules/path-to-regexp": { "version": "8.3.0", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.3.0.tgz", @@ -5450,6 +8701,16 @@ "node": ">=10.13.0" } }, + "node_modules/possible-typed-array-names": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/postal-mime": { "version": "2.7.4", "resolved": "https://registry.npmjs.org/postal-mime/-/postal-mime-2.7.4.tgz", @@ -5495,6 +8756,19 @@ "node": ">= 0.8.0" } }, + "node_modules/pretty-bytes": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-6.1.1.tgz", + "integrity": "sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", @@ -5992,6 +9266,108 @@ "util-deprecate": "~1.0.1" } }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", + "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.1", + "which-builtin-type": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true, + "license": "MIT" + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.2.tgz", + "integrity": "sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", + "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpu-core": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.4.0.tgz", + "integrity": "sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==", + "dev": true, + "license": "MIT", + "dependencies": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.2.2", + "regjsgen": "^0.8.0", + "regjsparser": "^0.13.0", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.2.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/regjsparser": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.13.2.tgz", + "integrity": "sha512-NgRBy2Nx/bE+9F27nVHnqcN5HjyLmecqsqx2PJHu3/IEtADD4WuxuXIVExD5PoSDFVrl78dOonfcOe5O+5nbzQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "jsesc": "~3.1.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, "node_modules/remark-gfm": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-4.0.1.tgz", @@ -6067,6 +9443,16 @@ "node": ">=0.10.0" } }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/require-main-filename": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", @@ -6094,6 +9480,28 @@ } } }, + "node_modules/resolve": { + "version": "1.22.12", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.12.tgz", + "integrity": "sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "is-core-module": "^2.16.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", @@ -6145,6 +9553,51 @@ "dev": true, "license": "MIT" }, + "node_modules/rollup": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.62.2.tgz", + "integrity": "sha512-RFnrW4lhXA3s3eqHDZvN654g8OTjzRfqpIRJYczCGB6HzphckVAi/Qh4tbPUbRuDi7s1Llv8g/NspLkttY3gTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.9" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.62.2", + "@rollup/rollup-android-arm64": "4.62.2", + "@rollup/rollup-darwin-arm64": "4.62.2", + "@rollup/rollup-darwin-x64": "4.62.2", + "@rollup/rollup-freebsd-arm64": "4.62.2", + "@rollup/rollup-freebsd-x64": "4.62.2", + "@rollup/rollup-linux-arm-gnueabihf": "4.62.2", + "@rollup/rollup-linux-arm-musleabihf": "4.62.2", + "@rollup/rollup-linux-arm64-gnu": "4.62.2", + "@rollup/rollup-linux-arm64-musl": "4.62.2", + "@rollup/rollup-linux-loong64-gnu": "4.62.2", + "@rollup/rollup-linux-loong64-musl": "4.62.2", + "@rollup/rollup-linux-ppc64-gnu": "4.62.2", + "@rollup/rollup-linux-ppc64-musl": "4.62.2", + "@rollup/rollup-linux-riscv64-gnu": "4.62.2", + "@rollup/rollup-linux-riscv64-musl": "4.62.2", + "@rollup/rollup-linux-s390x-gnu": "4.62.2", + "@rollup/rollup-linux-x64-gnu": "4.62.2", + "@rollup/rollup-linux-x64-musl": "4.62.2", + "@rollup/rollup-openbsd-x64": "4.62.2", + "@rollup/rollup-openharmony-arm64": "4.62.2", + "@rollup/rollup-win32-arm64-msvc": "4.62.2", + "@rollup/rollup-win32-ia32-msvc": "4.62.2", + "@rollup/rollup-win32-x64-gnu": "4.62.2", + "@rollup/rollup-win32-x64-msvc": "4.62.2", + "fsevents": "~2.3.2" + } + }, "node_modules/rope-sequence": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/rope-sequence/-/rope-sequence-1.3.4.tgz", @@ -6177,12 +9630,81 @@ "tslib": "^2.1.0" } }, + "node_modules/safe-array-concat": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.4.tgz", + "integrity": "sha512-wtZlHyOje6OZTGqAoaDKxFkgRtkF9CnHAVnCHKfuj200wAgL+bSJhdsCD2l0Qx/2ekEXjPWcyKkfGb5CPboslg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.9", + "call-bound": "^1.0.4", + "get-intrinsic": "^1.3.0", + "has-symbols": "^1.1.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-array-concat/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true, + "license": "MIT" + }, "node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "license": "MIT" }, + "node_modules/safe-push-apply": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", + "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-push-apply/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true, + "license": "MIT" + }, + "node_modules/safe-regex-test": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", @@ -6240,6 +9762,16 @@ "url": "https://opencollective.com/express" } }, + "node_modules/serialize-javascript": { + "version": "7.0.7", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-7.0.7.tgz", + "integrity": "sha512-YAy8Od6KV+uuwUuU50np8fGB/Aues6Y0nAhA9y/hId74PlKUcme4pXcBD46NWKr1Q4osN/iseZ17YqO1XfmI8g==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=20.0.0" + } + }, "node_modules/serve-static": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.1.tgz", @@ -6271,6 +9803,55 @@ "integrity": "sha512-oeM1lpU/UvhTxw+g3cIfxXHyJRc/uidd3yK1P242gzHds0udQBYzs3y8j4gCCW+ZJ7ad0yctld8RYO+bdurlvw==", "license": "MIT" }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-proto": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", + "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", @@ -6391,6 +9972,39 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/smob": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/smob/-/smob-1.6.2.tgz", + "integrity": "sha512-RQsvleCbF8cVHEv+xuDGaA4pOizFqJ0GgjtMSRo6oP8pnN7WsigHgVGey6aILRBKv4W2YOMHLqbKdnB6hpB9fw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/source-map": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0.tgz", + "integrity": "sha512-d8EqvL+k/SOXCreS/SUzg2ciyHqBBLcN/yuRjFsbvVhHTE2pgei7oAhmPM7kWFbkX6OSMQfUq4KbkF3au9lhYQ==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">= 12" + } + }, "node_modules/source-map-js": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", @@ -6401,6 +10015,27 @@ "node": ">=0.10.0" } }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/space-separated-tokens": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", @@ -6436,6 +10071,20 @@ "node": ">= 0.8" } }, + "node_modules/stop-iteration-iterator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz", + "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "internal-slot": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -6459,6 +10108,94 @@ "node": ">=8" } }, + "node_modules/string.prototype.matchall": { + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz", + "integrity": "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.6", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.6", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "regexp.prototype.flags": "^1.5.3", + "set-function-name": "^2.0.2", + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.11.tgz", + "integrity": "sha512-PwvK7BU+CMTJGYQCTZb5RWXIML92lftJLhQz1tBzgKiqGxJaMlBAa48POXaNAC2s4y8jr3EFqrkF9+44neS46w==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.9", + "call-bound": "^1.0.4", + "define-data-property": "^1.1.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.24.2", + "es-object-atoms": "^1.1.2", + "has-property-descriptors": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.10.tgz", + "integrity": "sha512-2+3aDAOmPTmuFwjDnmJG2ctEkQKVki7vOSqaxkv42Mowj1V6PnvuwFCRrR5lChUux1TBskPjfkeTOhqczDMxTw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.9", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/stringify-entities": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", @@ -6473,6 +10210,21 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/stringify-object": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", + "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "get-own-enumerable-property-symbols": "^3.0.0", + "is-obj": "^1.0.1", + "is-regexp": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -6485,6 +10237,16 @@ "node": ">=8" } }, + "node_modules/strip-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-2.0.1.tgz", + "integrity": "sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, "node_modules/strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", @@ -6529,6 +10291,19 @@ "node": ">=8" } }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/svix": { "version": "1.88.0", "resolved": "https://registry.npmjs.org/svix/-/svix-1.88.0.tgz", @@ -6564,6 +10339,54 @@ "node": ">=18" } }, + "node_modules/temp-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", + "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/tempy": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.6.0.tgz", + "integrity": "sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-stream": "^2.0.0", + "temp-dir": "^2.0.0", + "type-fest": "^0.16.0", + "unique-string": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terser": { + "version": "5.49.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.49.0.tgz", + "integrity": "sha512-SNiDnXyHSrxVcIOtVbULzcTmniUiwcV7Nwdyj1twVubeTmbjoa8p69KKDpfkdoOavuM4/GRm1+ykI8qqnavHoA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.15.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/tinyglobby": { "version": "0.2.15", "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", @@ -6666,6 +10489,19 @@ "node": ">= 0.8.0" } }, + "node_modules/type-fest": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", + "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/type-is": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.0.1.tgz", @@ -6680,6 +10516,84 @@ "node": ">= 0.6" } }, + "node_modules/typed-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", + "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", + "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.15", + "reflect.getprototypeof": "^1.0.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.8.tgz", + "integrity": "sha512-phPGCwqr2+Qo0fwniCE8e4pKnGu/yFb5nD5Y8bf0EEeiI5GklnACYA9GFy/DrAeRrKHXvHn+1SUsOWgJp6RO+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.9", + "for-each": "^0.3.5", + "gopd": "^1.2.0", + "is-typed-array": "^1.1.15", + "possible-typed-array-names": "^1.1.0", + "reflect.getprototypeof": "^1.0.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/typescript": { "version": "5.9.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", @@ -6718,6 +10632,25 @@ "typescript": ">=4.8.4 <6.0.0" } }, + "node_modules/unbox-primitive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", + "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-bigints": "^1.0.2", + "has-symbols": "^1.1.0", + "which-boxed-primitive": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/underscore": { "version": "1.13.8", "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.8.tgz", @@ -6731,6 +10664,50 @@ "dev": true, "license": "MIT" }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", + "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.1.tgz", + "integrity": "sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.2.0.tgz", + "integrity": "sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/unified": { "version": "11.0.5", "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", @@ -6750,6 +10727,19 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "crypto-random-string": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/unist-util-is": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.1.tgz", @@ -6818,6 +10808,16 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, "node_modules/unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", @@ -6827,6 +10827,17 @@ "node": ">= 0.8" } }, + "node_modules/upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4", + "yarn": "*" + } + }, "node_modules/update-browserslist-db": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", @@ -7012,6 +11023,37 @@ } } }, + "node_modules/vite-plugin-pwa": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/vite-plugin-pwa/-/vite-plugin-pwa-1.3.0.tgz", + "integrity": "sha512-c5kMgN+ITrOtHXp8PAtk2uOIEea6XjP/unCGxOWWBzQ6qa65qj/awHg0wf+QF9E/2u9vh86LqxPwzEPNbM2r5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.3.6", + "pretty-bytes": "^6.1.1", + "tinyglobby": "^0.2.10", + "workbox-build": "^7.4.1", + "workbox-window": "^7.4.1" + }, + "engines": { + "node": ">=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vite-pwa/assets-generator": "^1.0.0", + "vite": "^3.1.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0", + "workbox-build": "^7.4.1", + "workbox-window": "^7.4.1" + }, + "peerDependenciesMeta": { + "@vite-pwa/assets-generator": { + "optional": true + } + } + }, "node_modules/w3c-keyname": { "version": "2.2.8", "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.8.tgz", @@ -7034,12 +11076,108 @@ "node": ">= 8" } }, + "node_modules/which-boxed-primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", + "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-bigint": "^1.1.0", + "is-boolean-object": "^1.2.1", + "is-number-object": "^1.1.1", + "is-string": "^1.1.1", + "is-symbol": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", + "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", + "is-async-function": "^2.0.0", + "is-date-object": "^1.1.0", + "is-finalizationregistry": "^1.1.0", + "is-generator-function": "^1.0.10", + "is-regex": "^1.2.1", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.1.0", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true, + "license": "MIT" + }, + "node_modules/which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/which-module": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", "license": "ISC" }, + "node_modules/which-typed-array": { + "version": "1.1.22", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.22.tgz", + "integrity": "sha512-fvO4ExWMFsqyhG3AiPAObMuY1lxaqgYcxbc49CNdWDDECOJNgQyvsOWVwbZc+qf3rzRtxojBK+CMEv0Ld5CYpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.9", + "call-bound": "^1.0.4", + "for-each": "^0.3.5", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/word-wrap": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", @@ -7050,6 +11188,250 @@ "node": ">=0.10.0" } }, + "node_modules/workbox-background-sync": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-7.4.1.tgz", + "integrity": "sha512-HhT7KE8tOWDm02wRNshXUnUPofMlhenF2DBdUnDPOubhizzPeItkYTmAB6td1Z2cjYPa98vzEiPLEuzn5hN66g==", + "dev": true, + "license": "MIT", + "dependencies": { + "idb": "^7.0.1", + "workbox-core": "7.4.1" + } + }, + "node_modules/workbox-broadcast-update": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-7.4.1.tgz", + "integrity": "sha512-uAlgslKLvbQY+suirIdnBCSYrcgBhjp81Nj4l1lj/Jmj0MJO2CJERnCJjT0GFVwmReV0N+zs78K6gqd5gr9/+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "workbox-core": "7.4.1" + } + }, + "node_modules/workbox-build": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-7.4.1.tgz", + "integrity": "sha512-SDhxIvEAde9Gy/5w4Yo1Jh/M49Z0qE3q0oteyE8zGq0DScxFqVBcCtIXFuLtmtxRQZCMbf0prco4VyEu3KBQuw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@apideck/better-ajv-errors": "^0.3.1", + "@babel/core": "^7.24.4", + "@babel/preset-env": "^7.11.0", + "@babel/runtime": "^7.11.2", + "@rollup/plugin-babel": "^6.1.0", + "@rollup/plugin-node-resolve": "^16.0.3", + "@rollup/plugin-replace": "^6.0.3", + "@rollup/plugin-terser": "^1.0.0", + "@trickfilm400/rollup-plugin-off-main-thread": "^3.0.0-pre1", + "ajv": "^8.6.0", + "common-tags": "^1.8.0", + "eta": "^4.5.1", + "fast-json-stable-stringify": "^2.1.0", + "fs-extra": "^9.0.1", + "glob": "^11.0.1", + "pretty-bytes": "^5.3.0", + "rollup": "^4.53.3", + "source-map": "^0.8.0-beta.0", + "stringify-object": "^3.3.0", + "strip-comments": "^2.0.1", + "tempy": "^0.6.0", + "upath": "^1.2.0", + "workbox-background-sync": "7.4.1", + "workbox-broadcast-update": "7.4.1", + "workbox-cacheable-response": "7.4.1", + "workbox-core": "7.4.1", + "workbox-expiration": "7.4.1", + "workbox-google-analytics": "7.4.1", + "workbox-navigation-preload": "7.4.1", + "workbox-precaching": "7.4.1", + "workbox-range-requests": "7.4.1", + "workbox-recipes": "7.4.1", + "workbox-routing": "7.4.1", + "workbox-strategies": "7.4.1", + "workbox-streams": "7.4.1", + "workbox-sw": "7.4.1", + "workbox-window": "7.4.1" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/workbox-build/node_modules/ajv": { + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz", + "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/workbox-build/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT" + }, + "node_modules/workbox-build/node_modules/pretty-bytes": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/workbox-cacheable-response": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-7.4.1.tgz", + "integrity": "sha512-8xaFoJdDc2OjrlbbL3gEeBO1WKcMwRqwLRupgqahYXu75yXajPLuwrbXMrIGZuWYXrQwk0xDjOxZ/ujCy/oJYw==", + "dev": true, + "license": "MIT", + "dependencies": { + "workbox-core": "7.4.1" + } + }, + "node_modules/workbox-core": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-7.4.1.tgz", + "integrity": "sha512-DT+vu46eh/2vRsSHTY4Xmc32Z1rr9PRlQUXr1Dx30ZuXRWwOsvZgGgcwxcasubQLQmbTNYZjv44LkBAQ4tT5tQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/workbox-expiration": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-7.4.1.tgz", + "integrity": "sha512-lRKUF7b+OGbeXkQk1s6MHXOa3d7Xxf7Of31W6c6hCfipfIyrtdWZ89stq21AHZMaoG7VNFoHply4Ox+rU31TWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "idb": "^7.0.1", + "workbox-core": "7.4.1" + } + }, + "node_modules/workbox-google-analytics": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-7.4.1.tgz", + "integrity": "sha512-Mks1JwLEt++ZAkF6sS1OpSh9RtAMIsiDgRpK+codiHGIPXeaUOgi4cPc3GFadUl8V5QPeypEk8Oxgl3HlwVzHw==", + "dev": true, + "license": "MIT", + "dependencies": { + "workbox-background-sync": "7.4.1", + "workbox-core": "7.4.1", + "workbox-routing": "7.4.1", + "workbox-strategies": "7.4.1" + } + }, + "node_modules/workbox-navigation-preload": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-7.4.1.tgz", + "integrity": "sha512-C4KVsjPcYKJOhr631AxR9XoG2rLF3QiTk5aMv36MXOjtWvm8axwNFAtKUPGsWUwLXXAMgYM1En7fsvndaXeXRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "workbox-core": "7.4.1" + } + }, + "node_modules/workbox-precaching": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-7.4.1.tgz", + "integrity": "sha512-cdr/9qByww7yzEp7zg/qI4ukUrrNjQLgN+ONQRpjy/VqGQXwkgHwr00KksGJK8v0VifwDXBb8a4cWNZH71jn3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "workbox-core": "7.4.1", + "workbox-routing": "7.4.1", + "workbox-strategies": "7.4.1" + } + }, + "node_modules/workbox-range-requests": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-7.4.1.tgz", + "integrity": "sha512-7i2oxAUE82gHdAJBCAQ04JzNOdRPqzuOzGfoUyJpFSmeqBNYGPrAH8GPoPjUQTfp+NycwrD2H68VtuF8qxv0vQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "workbox-core": "7.4.1" + } + }, + "node_modules/workbox-recipes": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-7.4.1.tgz", + "integrity": "sha512-gnbVfmV4/TtmQaM4x9AtuXhcdstJsep3XMVeztOrQVPT+R6+6DeBjGTCQ7fFCXm+4GEHUA5VEBTyi5+4gWGeog==", + "dev": true, + "license": "MIT", + "dependencies": { + "workbox-cacheable-response": "7.4.1", + "workbox-core": "7.4.1", + "workbox-expiration": "7.4.1", + "workbox-precaching": "7.4.1", + "workbox-routing": "7.4.1", + "workbox-strategies": "7.4.1" + } + }, + "node_modules/workbox-routing": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-7.4.1.tgz", + "integrity": "sha512-yubJGErZOusuidAenaL5ypfhQOa7urxP/f8E0ws7FPb4039RiWXUWBAyUkmUoOL/BcQGen3h0J8872d51IYxtA==", + "dev": true, + "license": "MIT", + "dependencies": { + "workbox-core": "7.4.1" + } + }, + "node_modules/workbox-strategies": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-7.4.1.tgz", + "integrity": "sha512-GZxpaw9NbmOelj7667uZ2kpk5BFpOGbO4X0qjwh5ls8XQ8C+Lha5LQchTiUzsTFSS+NlUpftYAyOVXvQUrcqOQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "workbox-core": "7.4.1" + } + }, + "node_modules/workbox-streams": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-7.4.1.tgz", + "integrity": "sha512-HWWtraKUbJknd9kgqGcpQ3G114HOPYvqs8HaJMDs2ebLNAimDkVDaWfAXE6Ybl+m8U6KsCE6pWyLYuigWmnAXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "workbox-core": "7.4.1", + "workbox-routing": "7.4.1" + } + }, + "node_modules/workbox-sw": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-7.4.1.tgz", + "integrity": "sha512-fez5f2DUlDJWTFYkCWQpY10N8gtztd849NswCbVFk0QlcSM4HT5A8x4g4ii650yem4I8tHY0R7JZahwp3ltIPw==", + "dev": true, + "license": "MIT" + }, + "node_modules/workbox-window": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-7.4.1.tgz", + "integrity": "sha512-notZDH2u8VXaqyuD7xaqIfEFi6SRM4SUSd7ewe9PDsVqADuepxX2ZMY3uvuZGxzY5ZOsGC/vD3A/3smFtJt4/A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/trusted-types": "^2.0.2", + "workbox-core": "7.4.1" + } + }, "node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", diff --git a/package.json b/package.json index 3a40d4a..4167e42 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "siteforge", "private": true, - "version": "1.0.14", + "version": "1.1.0", "type": "module", "scripts": { "dev": "vite", @@ -50,6 +50,7 @@ "globals": "^17.4.0", "typescript": "~5.9.3", "typescript-eslint": "^8.56.1", - "vite": "^8.0.0" + "vite": "^8.0.0", + "vite-plugin-pwa": "^1.3.0" } } diff --git a/public/pwa-192.png b/public/pwa-192.png new file mode 100644 index 0000000000000000000000000000000000000000..96232d432ae5d413808e76c40eb804889a839d97 GIT binary patch literal 13773 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%0ANq@N$ifl*cU1`E6(>s|dg61NQ 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 SuHn_oQj$~uR4wy4gO6 literal 0 HcmV?d00001 diff --git a/server.js b/server.js index c08ad34..178ab29 100644 --- a/server.js +++ b/server.js @@ -54,6 +54,7 @@ import { register as registerQuestions } from './server/routes/questions.js' import { register as registerAnalytics } from './server/routes/analytics.js' import { register as registerDownloads } from './server/routes/downloads.js' import { register as registerEpisodes } from './server/routes/episodes.js' +import { register as registerFeed } from './server/routes/feed.js' import { register as registerQrCodes } from './server/routes/qr-codes.js' import { register as registerPublic } from './server/routes/public.js' @@ -99,6 +100,7 @@ registerQuestions(app) registerAnalytics(app) registerDownloads(app) registerEpisodes(app) +registerFeed(app) registerQrCodes(app) // Hit-counting middleware (must come before public routes) diff --git a/server/routes/episodes.js b/server/routes/episodes.js index d5a01df..55c43bd 100644 --- a/server/routes/episodes.js +++ b/server/routes/episodes.js @@ -3,6 +3,7 @@ import { sanitizeUrl } from '../study-helpers.js' const RSS_FEED_URL = 'https://anchor.fm/s/11068d290/podcast/rss' let episodesCache = null let episodesCacheAt = 0 +let rawXmlCache = null const EPISODES_CACHE_TTL = 30 * 60 * 1000 function extractCdata(raw) { @@ -40,7 +41,7 @@ function parseRssItems(xml, limit = Infinity) { return items } -async function fetchAllEpisodes() { +export async function fetchAllEpisodes() { const now = Date.now() if (episodesCache && (now - episodesCacheAt) < EPISODES_CACHE_TTL) { return episodesCache @@ -51,12 +52,18 @@ async function fetchAllEpisodes() { clearTimeout(timeout) if (!response.ok) throw new Error(`RSS fetch failed: ${response.status}`) const xml = await response.text() + rawXmlCache = xml const episodes = parseRssItems(xml) episodesCache = episodes episodesCacheAt = now return episodes } +export async function fetchRawFeedXml() { + await fetchAllEpisodes() + return rawXmlCache +} + function toSpotifyEpisodeEmbedUrl(urlValue) { if (!urlValue) return '' try { diff --git a/server/routes/feed.js b/server/routes/feed.js new file mode 100644 index 0000000..d4e85ca --- /dev/null +++ b/server/routes/feed.js @@ -0,0 +1,35 @@ +import { fetchRawFeedXml } from './episodes.js' +import { getCanonicalBaseUrl } from '../email.js' + +export function register(app) { + app.get('/feed.xml', async (_req, res) => { + try { + const xml = await fetchRawFeedXml() + if (!xml) { + res.status(503).send('Feed temporarily unavailable') + return + } + + const baseUrl = getCanonicalBaseUrl().replace(/\/$/, '') + const feedUrl = `${baseUrl}/feed.xml` + + // Rewrite channel and to our canonical domain + const rewritten = xml + .replace( + /]+rel="self"[^>]*\/>/, + `` + ) + .replace( + /([\s\S]*?)[^<]*(\/link>)/, + `$1${baseUrl}$2` + ) + + res.set('Content-Type', 'application/rss+xml; charset=utf-8') + res.set('Cache-Control', 'public, max-age=1800') + res.send(rewritten) + } catch (err) { + console.error('[feed.xml]', err?.message ?? err) + res.status(502).send('Failed to fetch feed') + } + }) +} diff --git a/server/routes/study-account.js b/server/routes/study-account.js index e2ed4d5..d90d553 100644 --- a/server/routes/study-account.js +++ b/server/routes/study-account.js @@ -224,6 +224,9 @@ export function register(app) { noteCount: Object.keys(notes).length, memberSince: user.createdAt, lastLoginAt: user.lastLoginAt, + currentStreak: user.currentStreak ?? 0, + longestStreak: user.longestStreak ?? 0, + lastStudiedDate: user.lastStudiedDate ?? null, }, studies, }) diff --git a/server/routes/study-data.js b/server/routes/study-data.js index 7f98933..289926c 100644 --- a/server/routes/study-data.js +++ b/server/routes/study-data.js @@ -205,11 +205,21 @@ export function register(app) { state.studyProgressCache.set(user.id, progress) queueUserProgressWrite(user.id) + // Streak tracking + const todayStr = new Date().toISOString().slice(0, 10) + const lastDate = user.lastStudiedDate ?? null + if (lastDate !== todayStr) { + const yesterday = new Date(Date.now() - 864e5).toISOString().slice(0, 10) + user.currentStreak = lastDate === yesterday ? (user.currentStreak ?? 0) + 1 : 1 + user.longestStreak = Math.max(user.currentStreak, user.longestStreak ?? 0) + user.lastStudiedDate = todayStr + } + // Record first completion timestamp on the user record (additive, never overwrite) if (!user.firstCompletionAt) { user.firstCompletionAt = new Date().toISOString() - queueStudyUsersWrite() } + queueStudyUsersWrite() res.json({ ok: true, studySlug, completedSectionIds: studyProgress.completedSectionIds }) }) diff --git a/src/colossiansStudy.tsx b/src/colossiansStudy.tsx index 40ec5e0..c9dca17 100644 --- a/src/colossiansStudy.tsx +++ b/src/colossiansStudy.tsx @@ -7,6 +7,7 @@ import { Breadcrumbs } from './components/Breadcrumbs' import { StudyCertificate } from './components/StudyCertificate' import { EpisodeAudioPlayer } from './components/EpisodeAudioPlayer' import { NoteCard } from './components/NoteCard' +import { StudySectionComments } from './components/StudySectionComments' type Props = { content: SiteContent } @@ -49,6 +50,9 @@ type StudyAccountOverview = { noteCount: number memberSince: string lastLoginAt: string | null + currentStreak: number + longestStreak: number + lastStudiedDate: string | null } studies: Array<{ slug: string @@ -2064,7 +2068,7 @@ export function ColossiansStudySectionPage({ content }: Props) { Share a thought or reaction with other students in this lesson.{' '} See all community posts โ†’

- + @@ -2766,16 +2770,43 @@ export function StudyAccountPage() { {overview?.stats && ( <> -
-
+
+

{overview.stats.noteCount}

-

Total notes saved

+

Notes saved

-
+
+

{overview.stats.currentStreak ?? 0} ๐Ÿ”ฅ

+

Day streak

+
+
+

{overview.stats.longestStreak ?? 0}

+

Longest streak

+
+

{overview.stats.memberSince && !isNaN(new Date(overview.stats.memberSince).getTime()) ? new Date(overview.stats.memberSince).toLocaleDateString('en-US', { month: 'short', day: 'numeric', year: 'numeric' }) : 'โ€”'}

-

Member since

+

Member since

+ {overview.studies.filter(s => s.enrolled && s.totalLessons > 0).length > 0 && ( +
+

Study Progress

+ {overview.studies.filter(s => s.enrolled && s.totalLessons > 0).map(s => { + const pct = Math.round((s.completedLessons / s.totalLessons) * 100) + return ( +
+
+ {s.title} + {s.completedLessons}/{s.totalLessons} lessons ยท {pct}% +
+
+
+
+
+ ) + })} +
+ )} {divider} )} diff --git a/vite.config.ts b/vite.config.ts index 261dbc5..a54f83c 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,9 +1,44 @@ import { defineConfig } from 'vite' import react from '@vitejs/plugin-react' +import { VitePWA } from 'vite-plugin-pwa' -// https://vite.dev/config/ export default defineConfig({ - plugins: [react()], + plugins: [ + react(), + VitePWA({ + registerType: 'autoUpdate', + includeAssets: ['favicon.svg', 'book_icon.png', 'icons.svg'], + manifest: { + name: 'Verse by Verse with Nate', + short_name: 'VBVN', + description: 'A journey through Scripture โ€” episodes, Q&A, and Bible study.', + start_url: '/', + display: 'standalone', + background_color: '#13120e', + theme_color: '#13120e', + icons: [ + { src: '/pwa-192.png', sizes: '192x192', type: 'image/png' }, + { src: '/pwa-512.png', sizes: '512x512', type: 'image/png', purpose: 'any maskable' }, + ], + }, + workbox: { + navigateFallback: '/index.html', + navigateFallbackDenylist: [/^\/api\//, /^\/feed\.xml/, /^\/uploads\//], + runtimeCaching: [ + { + urlPattern: /^\/api\/(episodes|questions)/, + handler: 'StaleWhileRevalidate', + options: { cacheName: 'api-content', expiration: { maxAgeSeconds: 3600 } }, + }, + { + urlPattern: /\/images\//, + handler: 'CacheFirst', + options: { cacheName: 'images', expiration: { maxEntries: 60, maxAgeSeconds: 86400 * 30 } }, + }, + ], + }, + }), + ], resolve: { alias: { 'react-simple-maps': 'react-simple-maps/dist/index.es.js',