From 374422abddebcf228ab747d24a39e7df7d173e27 Mon Sep 17 00:00:00 2001 From: tiennm99 Date: Mon, 27 Apr 2026 20:33:45 +0700 Subject: [PATCH] feat(pwa): full offline support via vite-plugin-pwa Register VitePWA in the production config with autoUpdate, Nord theme colors, /sokoban/ start_url and scope, 192/512 plus a maskable icon. Workbox precaches the built bundle so subsequent visits run offline. Generate matching pwa-192/512 and apple-touch-icon PNGs in public/ so "Add to Home Screen" picks up a proper icon on iOS and Android. --- package-lock.json | 4305 ++++++++++++++++++++++++++++++++++- package.json | 15 +- public/apple-touch-icon.png | Bin 0 -> 14630 bytes public/pwa-192x192.png | Bin 0 -> 5619 bytes public/pwa-512x512.png | Bin 0 -> 17896 bytes vite/config.prod.mjs | 28 +- 6 files changed, 4247 insertions(+), 101 deletions(-) create mode 100644 public/apple-touch-icon.png create mode 100644 public/pwa-192x192.png create mode 100644 public/pwa-512x512.png diff --git a/package-lock.json b/package-lock.json index d3c93ed..ad2d88e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,1367 @@ "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.0.3", "svelte": "^5.19.0", - "vite": "^6.4.2" + "vite": "^6.4.2", + "vite-plugin-pwa": "^1.2.0" + } + }, + "node_modules/@apideck/better-ajv-errors": { + "version": "0.3.7", + "dev": true, + "license": "MIT", + "dependencies": { + "jsonpointer": "^5.0.1", + "leven": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "ajv": ">=8" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.29.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.28.5", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.29.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.29.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.0", + "@babel/generator": "^7.29.0", + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-module-transforms": "^7.28.6", + "@babel/helpers": "^7.28.6", + "@babel/parser": "^7.29.0", + "@babel/template": "^7.28.6", + "@babel/traverse": "^7.29.0", + "@babel/types": "^7.29.0", + "@jridgewell/remapping": "^2.3.5", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.29.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.0", + "@babel/types": "^7.29.0", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.27.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.3" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.28.6", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.28.6", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.28.6", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-member-expression-to-functions": "^7.28.5", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/helper-replace-supers": "^7.28.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/traverse": "^7.28.6", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.28.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "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", + "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.28.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.28.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.28.5", + "@babel/types": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.28.6", + "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", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.28.6", + "@babel/helper-validator-identifier": "^7.28.5", + "@babel/traverse": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.27.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.28.6", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.27.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-wrap-function": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.28.6", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.28.5", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/traverse": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.27.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.28.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.27.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.28.6", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.28.6", + "@babel/traverse": "^7.28.6", + "@babel/types": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.29.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.28.6", + "@babel/types": "^7.29.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.29.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.0" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.28.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { + "version": "7.27.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "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.27.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.27.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/plugin-transform-optional-chaining": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.28.6", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/traverse": "^7.28.6" + }, + "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", + "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.28.6", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.28.6", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "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.27.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.29.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/helper-remap-async-to-generator": "^7.27.1", + "@babel/traverse": "^7.29.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.28.6", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/helper-remap-async-to-generator": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.27.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.28.6", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.28.6", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.28.6", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.28.6", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-globals": "^7.28.0", + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/helper-replace-supers": "^7.28.6", + "@babel/traverse": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.28.6", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/template": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.28.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.28.6", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.28.5", + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.27.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "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.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.28.5", + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.27.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-explicit-resource-management": { + "version": "7.28.6", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/plugin-transform-destructuring": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.28.6", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.27.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.27.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.27.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.28.6", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.27.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.28.6", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.27.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.27.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.28.6", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.29.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/helper-validator-identifier": "^7.28.5", + "@babel/traverse": "^7.29.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.27.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.29.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.28.5", + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.27.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.28.6", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.28.6", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.28.6", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/plugin-transform-destructuring": "^7.28.5", + "@babel/plugin-transform-parameters": "^7.27.7", + "@babel/traverse": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.27.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.28.6", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.28.6", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.27.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.28.6", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.28.6", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-create-class-features-plugin": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.27.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.29.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regexp-modifiers": { + "version": "7.28.6", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.28.5", + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.27.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.27.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.28.6", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.27.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.27.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.27.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.27.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.28.6", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.28.5", + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.27.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.28.6", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.28.5", + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.29.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.29.0", + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/helper-validator-option": "^7.27.1", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.28.5", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.27.1", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.27.1", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.27.1", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.28.6", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-import-assertions": "^7.28.6", + "@babel/plugin-syntax-import-attributes": "^7.28.6", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.27.1", + "@babel/plugin-transform-async-generator-functions": "^7.29.0", + "@babel/plugin-transform-async-to-generator": "^7.28.6", + "@babel/plugin-transform-block-scoped-functions": "^7.27.1", + "@babel/plugin-transform-block-scoping": "^7.28.6", + "@babel/plugin-transform-class-properties": "^7.28.6", + "@babel/plugin-transform-class-static-block": "^7.28.6", + "@babel/plugin-transform-classes": "^7.28.6", + "@babel/plugin-transform-computed-properties": "^7.28.6", + "@babel/plugin-transform-destructuring": "^7.28.5", + "@babel/plugin-transform-dotall-regex": "^7.28.6", + "@babel/plugin-transform-duplicate-keys": "^7.27.1", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.29.0", + "@babel/plugin-transform-dynamic-import": "^7.27.1", + "@babel/plugin-transform-explicit-resource-management": "^7.28.6", + "@babel/plugin-transform-exponentiation-operator": "^7.28.6", + "@babel/plugin-transform-export-namespace-from": "^7.27.1", + "@babel/plugin-transform-for-of": "^7.27.1", + "@babel/plugin-transform-function-name": "^7.27.1", + "@babel/plugin-transform-json-strings": "^7.28.6", + "@babel/plugin-transform-literals": "^7.27.1", + "@babel/plugin-transform-logical-assignment-operators": "^7.28.6", + "@babel/plugin-transform-member-expression-literals": "^7.27.1", + "@babel/plugin-transform-modules-amd": "^7.27.1", + "@babel/plugin-transform-modules-commonjs": "^7.28.6", + "@babel/plugin-transform-modules-systemjs": "^7.29.0", + "@babel/plugin-transform-modules-umd": "^7.27.1", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.29.0", + "@babel/plugin-transform-new-target": "^7.27.1", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.28.6", + "@babel/plugin-transform-numeric-separator": "^7.28.6", + "@babel/plugin-transform-object-rest-spread": "^7.28.6", + "@babel/plugin-transform-object-super": "^7.27.1", + "@babel/plugin-transform-optional-catch-binding": "^7.28.6", + "@babel/plugin-transform-optional-chaining": "^7.28.6", + "@babel/plugin-transform-parameters": "^7.27.7", + "@babel/plugin-transform-private-methods": "^7.28.6", + "@babel/plugin-transform-private-property-in-object": "^7.28.6", + "@babel/plugin-transform-property-literals": "^7.27.1", + "@babel/plugin-transform-regenerator": "^7.29.0", + "@babel/plugin-transform-regexp-modifiers": "^7.28.6", + "@babel/plugin-transform-reserved-words": "^7.27.1", + "@babel/plugin-transform-shorthand-properties": "^7.27.1", + "@babel/plugin-transform-spread": "^7.28.6", + "@babel/plugin-transform-sticky-regex": "^7.27.1", + "@babel/plugin-transform-template-literals": "^7.27.1", + "@babel/plugin-transform-typeof-symbol": "^7.27.1", + "@babel/plugin-transform-unicode-escapes": "^7.27.1", + "@babel/plugin-transform-unicode-property-regex": "^7.28.6", + "@babel/plugin-transform-unicode-regex": "^7.27.1", + "@babel/plugin-transform-unicode-sets-regex": "^7.28.6", + "@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", + "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.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.28.6", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.28.6", + "@babel/parser": "^7.28.6", + "@babel/types": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.29.0", + "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", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.29.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@esbuild/aix-ppc64": { @@ -169,8 +1529,6 @@ }, "node_modules/@esbuild/linux-arm64": { "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.2.tgz", - "integrity": "sha512-gq/sjLsOyMT19I8obBISvhoYiZIAaGF8JpeXu1u8yPv8BE5HlWYobmlsfijFIZ9hIVGYkbdFhEqC0NvM4kNO0g==", "cpu": [ "arm64" ], @@ -439,25 +1797,25 @@ "node": ">=18" } }, + "node_modules/@isaacs/cliui": { + "version": "9.0.0", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", - "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", + "version": "0.3.13", "dev": true, "license": "MIT", "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" } }, "node_modules/@jridgewell/remapping": { "version": "2.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", - "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", "dev": true, "license": "MIT", "dependencies": { @@ -467,35 +1825,28 @@ }, "node_modules/@jridgewell/resolve-uri": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, "license": "MIT", "engines": { "node": ">=6.0.0" } }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "node_modules/@jridgewell/source-map": { + "version": "0.3.11", "dev": true, "license": "MIT", - "engines": { - "node": ">=6.0.0" + "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", - "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", "dev": true, "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "version": "0.3.31", "dev": true, "license": "MIT", "dependencies": { @@ -503,6 +1854,71 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "node_modules/@rollup/plugin-node-resolve": { + "version": "15.3.1", + "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-terser": { + "version": "0.4.4", + "dev": true, + "license": "MIT", + "dependencies": { + "serialize-javascript": "^6.0.1", + "smob": "^1.0.0", + "terser": "^5.17.4" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils": { + "version": "5.3.0", + "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.40.0", "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.40.0.tgz", @@ -595,6 +2011,9 @@ "arm" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -609,6 +2028,9 @@ "arm" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -617,12 +2039,13 @@ }, "node_modules/@rollup/rollup-linux-arm64-gnu": { "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.40.0.tgz", - "integrity": "sha512-L5ZLphTjjAD9leJzSLI7rr8fNqJMlGDKlazW2tX4IUF9P7R5TMQPElpH82Q7eNIDQnQlAyiNVfRPfP2vM5Avvg==", "cpu": [ "arm64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -631,12 +2054,13 @@ }, "node_modules/@rollup/rollup-linux-arm64-musl": { "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.40.0.tgz", - "integrity": "sha512-ATZvCRGCDtv1Y4gpDIXsS+wfFeFuLwVxyUBSLawjgXK2tRE6fnsQEkE4csQQYWlBlsFztRzCnBvWVfcae/1qxQ==", "cpu": [ "arm64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -651,6 +2075,9 @@ "loong64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -665,6 +2092,9 @@ "ppc64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -679,6 +2109,9 @@ "riscv64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -693,6 +2126,9 @@ "riscv64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -707,6 +2143,9 @@ "s390x" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -721,6 +2160,9 @@ "x64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -735,6 +2177,9 @@ "x64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -783,10 +2228,27 @@ "win32" ] }, + "node_modules/@surma/rollup-plugin-off-main-thread": { + "version": "2.2.3", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "ejs": "^3.1.6", + "json5": "^2.2.0", + "magic-string": "^0.25.0", + "string.prototype.matchall": "^4.0.6" + } + }, + "node_modules/@surma/rollup-plugin-off-main-thread/node_modules/magic-string": { + "version": "0.25.9", + "dev": true, + "license": "MIT", + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, "node_modules/@sveltejs/acorn-typescript": { "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@sveltejs/acorn-typescript/-/acorn-typescript-1.0.9.tgz", - "integrity": "sha512-lVJX6qEgs/4DOcRTpo56tmKzVPtoWAaVbL4hfO7t7NVwl9AAXzQR6cihesW1BmNMPl+bK6dreu2sOKBP2Q9CIA==", "dev": true, "license": "MIT", "peerDependencies": { @@ -795,8 +2257,6 @@ }, "node_modules/@sveltejs/vite-plugin-svelte": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-5.1.1.tgz", - "integrity": "sha512-Y1Cs7hhTc+a5E9Va/xwKlAJoariQyHY+5zBgCZg4PFWNYQ1nMN9sjK1zhw1gK69DuqVP++sht/1GZg1aRwmAXQ==", "dev": true, "license": "MIT", "dependencies": { @@ -817,8 +2277,6 @@ }, "node_modules/@sveltejs/vite-plugin-svelte-inspector": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte-inspector/-/vite-plugin-svelte-inspector-4.0.1.tgz", - "integrity": "sha512-J/Nmb2Q2y7mck2hyCX4ckVHcR5tu2J+MtBEQqpDrrgELZ2uvraQcK/ioCV61AqkdXFgriksOKIceDcQmqnGhVw==", "dev": true, "license": "MIT", "dependencies": { @@ -835,22 +2293,21 @@ }, "node_modules/@types/estree": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", - "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/resolve": { + "version": "1.20.2", "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/acorn": { - "version": "8.14.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", - "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", + "version": "8.16.0", "dev": true, "license": "MIT", "bin": { @@ -860,40 +2317,382 @@ "node": ">=0.4.0" } }, + "node_modules/ajv": { + "version": "8.20.0", + "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/aria-query": { "version": "5.3.1", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.1.tgz", - "integrity": "sha512-Z/ZeOgVl7bcSYZ/u/rh0fOpvEpq//LZmdbkXyc7syVzjPAhfOa9ebsdTSjEBDU4vs5nC98Kfduj1uFo0qyET3g==", "dev": true, "license": "Apache-2.0", "engines": { "node": ">= 0.4" } }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.2", + "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", + "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", + "dev": true, + "license": "MIT" + }, + "node_modules/async-function": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "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/axobject-query": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", - "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", "dev": true, "license": "Apache-2.0", "engines": { "node": ">= 0.4" } }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.17", + "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", + "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", + "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/balanced-match": { + "version": "4.0.4", + "dev": true, + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/baseline-browser-mapping": { + "version": "2.10.23", + "dev": true, + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.cjs" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/brace-expansion": { + "version": "5.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/browserslist": { + "version": "4.28.2", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "baseline-browser-mapping": "^2.10.12", + "caniuse-lite": "^1.0.30001782", + "electron-to-chromium": "^1.5.328", + "node-releases": "^2.0.36", + "update-browserslist-db": "^1.2.3" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/call-bind": { + "version": "1.0.9", + "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", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001791", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, "node_modules/clsx": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", - "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", "dev": true, "license": "MIT", "engines": { "node": ">=6" } }, + "node_modules/commander": { + "version": "2.20.3", + "dev": true, + "license": "MIT" + }, + "node_modules/common-tags": { + "version": "1.8.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/core-js-compat": { + "version": "3.49.0", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.28.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypto-random-string": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/data-view-buffer": { + "version": "1.0.2", + "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", + "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", + "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", - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", "dev": true, "license": "MIT", "dependencies": { @@ -910,25 +2709,207 @@ }, "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", + "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", + "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/devalue": { "version": "5.7.1", - "resolved": "https://registry.npmjs.org/devalue/-/devalue-5.7.1.tgz", - "integrity": "sha512-MUbZ586EgQqdRnC4yDrlod3BEdyvE4TapGYHMW2CiaW+KkkFmWEFqBUaLltEZCGi0iFXCEjRF0OjF0DV2QHjOA==", "dev": true, "license": "MIT" }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ejs": { + "version": "3.1.10", + "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.344", + "dev": true, + "license": "ISC" + }, + "node_modules/es-abstract": { + "version": "1.24.2", + "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-define-property": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "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.0", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7", + "is-date-object": "^1.0.5", + "is-symbol": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/esbuild": { "version": "0.25.2", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.2.tgz", - "integrity": "sha512-16854zccKPnC+toMywC+uKNeYSv+/eXkevRAfwRD/G9Cleq66m8XFIrigkbvauLLlCfDL45Q2cWegSg53gGBnQ==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -966,17 +2947,21 @@ "@esbuild/win32-x64": "0.25.2" } }, + "node_modules/escalade": { + "version": "3.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/esm-env": { "version": "1.2.2", - "resolved": "https://registry.npmjs.org/esm-env/-/esm-env-1.2.2.tgz", - "integrity": "sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==", "dev": true, "license": "MIT" }, "node_modules/esrap": { "version": "2.2.5", - "resolved": "https://registry.npmjs.org/esrap/-/esrap-2.2.5.tgz", - "integrity": "sha512-/yLB1538mag+dn0wsePTe8C0rDIjUOaJpMs2McodSzmM2msWcZsBSdRtg6HOBt0A/r82BN+Md3pgwSc/uWt2Ig==", "dev": true, "license": "MIT", "dependencies": { @@ -991,10 +2976,46 @@ } } }, + "node_modules/estree-walker": { + "version": "2.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/esutils": { + "version": "2.0.3", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-uri": { + "version": "3.1.0", + "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.4.4", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.4.tgz", - "integrity": "sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==", "dev": true, "license": "MIT", "peerDependencies": { @@ -1006,6 +3027,81 @@ } } }, + "node_modules/filelist": { + "version": "1.0.6", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "minimatch": "^5.0.1" + } + }, + "node_modules/filelist/node_modules/balanced-match": { + "version": "1.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/filelist/node_modules/brace-expansion": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/filelist/node_modules/minimatch": { + "version": "5.1.9", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/for-each": { + "version": "0.3.5", + "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", + "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/fs-extra": { + "version": "9.1.0", + "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", @@ -1021,20 +3117,712 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, + "node_modules/function-bind": { + "version": "1.1.2", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.8", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "functions-have-names": "^1.2.3", + "hasown": "^2.0.2", + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/generator-function": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-own-enumerable-property-symbols": { + "version": "3.0.2", + "dev": true, + "license": "ISC" + }, + "node_modules/get-proto": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-symbol-description": { + "version": "1.1.0", + "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", + "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/globalthis": { + "version": "1.0.4", + "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", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "dev": true, + "license": "ISC" + }, + "node_modules/has-bigints": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "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", + "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", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/idb": { + "version": "7.1.1", + "dev": true, + "license": "ISC" + }, + "node_modules/internal-slot": { + "version": "1.1.0", + "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/is-array-buffer": { + "version": "3.0.5", + "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", + "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", + "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", + "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", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.2", + "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", + "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-finalizationregistry": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-generator-function": { + "version": "1.1.2", + "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-map": { + "version": "2.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-module": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number-object": { + "version": "1.1.1", + "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", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/is-reference": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.3.tgz", - "integrity": "sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==", "dev": true, "license": "MIT", "dependencies": { "@types/estree": "^1.0.6" } }, + "node_modules/is-regex": { + "version": "1.2.1", + "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", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-set": { + "version": "2.0.3", + "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", + "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", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-string": { + "version": "1.1.1", + "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", + "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", + "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", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.1.1", + "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", + "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": "2.0.5", + "dev": true, + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/jackspeak": { + "version": "4.2.3", + "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", + "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", + "dev": true, + "license": "MIT" + }, + "node_modules/jsesc": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.3", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "6.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonpointer": { + "version": "5.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/kleur": { "version": "4.1.5", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", - "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/leven": { + "version": "3.1.0", "dev": true, "license": "MIT", "engines": { @@ -1043,32 +3831,77 @@ }, "node_modules/locate-character": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-character/-/locate-character-3.0.0.tgz", - "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==", "dev": true, "license": "MIT" }, + "node_modules/lodash": { + "version": "4.18.1", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.sortby": { + "version": "4.7.0", + "dev": true, + "license": "MIT" + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "dev": true, + "license": "ISC", + "dependencies": { + "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/math-intrinsics": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/minimatch": { + "version": "10.2.5", + "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/minipass": { + "version": "7.1.3", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, "node_modules/ms": { "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true, "license": "MIT" }, "node_modules/nanoid": { "version": "3.3.11", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", - "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", "dev": true, "funding": [ { @@ -1084,17 +3917,113 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, + "node_modules/node-releases": { + "version": "2.0.38", + "dev": true, + "license": "MIT" + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.7", + "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/own-keys": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.6", + "object-keys": "^1.1.1", + "safe-push-apply": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "dev": true, + "license": "BlueOak-1.0.0" + }, + "node_modules/path-key": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "dev": true, + "license": "MIT" + }, + "node_modules/path-scurry": { + "version": "2.0.2", + "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.3.5", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": "20 || >=22" + } + }, "node_modules/picocolors": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", "dev": true, "license": "ISC" }, "node_modules/picomatch": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", - "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", "dev": true, "license": "MIT", "engines": { @@ -1104,10 +4033,16 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/possible-typed-array-names": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/postcss": { "version": "8.5.3", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", - "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", "dev": true, "funding": [ { @@ -1133,10 +4068,151 @@ "node": "^10 || ^12 || >=14" } }, + "node_modules/pretty-bytes": { + "version": "6.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.10", + "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", + "dev": true, + "license": "MIT" + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.2.2", + "dev": true, + "license": "MIT", + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.4", + "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", + "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", + "dev": true, + "license": "MIT" + }, + "node_modules/regjsparser": { + "version": "0.13.1", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "jsesc": "~3.1.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.12", + "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/rollup": { "version": "4.40.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.40.0.tgz", - "integrity": "sha512-Noe455xmA96nnqH5piFtLobsGbCij7Tu+tb3c1vYjNbTkfzGqXqQXG3wJaYXkRZuQ0vEYN4bhwg7QnIrqB5B+w==", "dev": true, "license": "MIT", "dependencies": { @@ -1173,20 +4249,405 @@ "fsevents": "~2.3.2" } }, + "node_modules/safe-array-concat": { + "version": "1.1.4", + "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-buffer": { + "version": "5.2.1", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safe-push-apply": { + "version": "1.0.0", + "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-regex-test": { + "version": "1.1.0", + "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/semver": { + "version": "6.3.1", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.2", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "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", + "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", + "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/shebang-command": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/smob": { + "version": "1.6.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/source-map": { + "version": "0.8.0-beta.0", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "whatwg-url": "^7.0.0" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/source-map-js": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "dev": true, "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, + "node_modules/source-map-support": { + "version": "0.5.21", + "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", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "dev": true, + "license": "MIT" + }, + "node_modules/stop-iteration-iterator": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "internal-slot": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string.prototype.matchall": { + "version": "4.0.12", + "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.10", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-data-property": "^1.1.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-object-atoms": "^1.0.0", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.9", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "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-object": { + "version": "3.3.0", + "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-comments": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/svelte": { "version": "5.55.3", - "resolved": "https://registry.npmjs.org/svelte/-/svelte-5.55.3.tgz", - "integrity": "sha512-dS1N+i3bA1v+c4UDb750MlN5vCO82G6vxh8HeTsPsTdJ1BLsN1zxSyDlIdBBqUjqZ/BxEwM8UrFf98aaoVnZFQ==", "dev": true, "license": "MIT", "dependencies": { @@ -1211,10 +4672,50 @@ "node": ">=18" } }, + "node_modules/temp-dir": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/tempy": { + "version": "0.6.0", + "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.46.2", + "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.13", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.13.tgz", - "integrity": "sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw==", "dev": true, "license": "MIT", "dependencies": { @@ -1228,6 +4729,205 @@ "url": "https://github.com/sponsors/SuperchupuDev" } }, + "node_modules/tr46": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/type-fest": { + "version": "0.16.0", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.3", + "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", + "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", + "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.7", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0", + "reflect.getprototypeof": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/unbox-primitive": { + "version": "1.1.0", + "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/unicode-canonical-property-names-ecmascript": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "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", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unique-string": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "crypto-random-string": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/universalify": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/upath": { + "version": "1.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4", + "yarn": "*" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.2.3", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, "node_modules/vite": { "version": "6.4.2", "resolved": "https://registry.npmjs.org/vite/-/vite-6.4.2.tgz", @@ -1303,10 +5003,37 @@ } } }, + "node_modules/vite-plugin-pwa": { + "version": "1.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.3.6", + "pretty-bytes": "^6.1.1", + "tinyglobby": "^0.2.10", + "workbox-build": "^7.4.0", + "workbox-window": "^7.4.0" + }, + "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", + "workbox-build": "^7.4.0", + "workbox-window": "^7.4.0" + }, + "peerDependenciesMeta": { + "@vite-pwa/assets-generator": { + "optional": true + } + } + }, "node_modules/vitefu": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-1.1.3.tgz", - "integrity": "sha512-ub4okH7Z5KLjb6hDyjqrGXqWtWvoYdU3IGm/NorpgHncKoLTCfRIbvlhBm7r0YstIaQRYlp4yEbFqDcKSzXSSg==", "dev": true, "license": "MIT", "workspaces": [ @@ -1323,10 +5050,402 @@ } } }, + "node_modules/webidl-conversions": { + "version": "4.0.2", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/whatwg-url": { + "version": "7.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + }, + "node_modules/which": { + "version": "2.0.2", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.1.1", + "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", + "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-collection": { + "version": "1.0.2", + "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-typed-array": { + "version": "1.1.20", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "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/workbox-background-sync": { + "version": "7.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "idb": "^7.0.1", + "workbox-core": "7.4.0" + } + }, + "node_modules/workbox-broadcast-update": { + "version": "7.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "workbox-core": "7.4.0" + } + }, + "node_modules/workbox-build": { + "version": "7.4.0", + "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": "^5.2.0", + "@rollup/plugin-node-resolve": "^15.2.3", + "@rollup/plugin-replace": "^2.4.1", + "@rollup/plugin-terser": "^0.4.3", + "@surma/rollup-plugin-off-main-thread": "^2.2.3", + "ajv": "^8.6.0", + "common-tags": "^1.8.0", + "fast-json-stable-stringify": "^2.1.0", + "fs-extra": "^9.0.1", + "glob": "^11.0.1", + "lodash": "^4.17.20", + "pretty-bytes": "^5.3.0", + "rollup": "^2.79.2", + "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.0", + "workbox-broadcast-update": "7.4.0", + "workbox-cacheable-response": "7.4.0", + "workbox-core": "7.4.0", + "workbox-expiration": "7.4.0", + "workbox-google-analytics": "7.4.0", + "workbox-navigation-preload": "7.4.0", + "workbox-precaching": "7.4.0", + "workbox-range-requests": "7.4.0", + "workbox-recipes": "7.4.0", + "workbox-routing": "7.4.0", + "workbox-strategies": "7.4.0", + "workbox-streams": "7.4.0", + "workbox-sw": "7.4.0", + "workbox-window": "7.4.0" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/workbox-build/node_modules/@rollup/plugin-babel": { + "version": "5.3.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.10.4", + "@rollup/pluginutils": "^3.1.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "@types/babel__core": "^7.1.9", + "rollup": "^1.20.0||^2.0.0" + }, + "peerDependenciesMeta": { + "@types/babel__core": { + "optional": true + } + } + }, + "node_modules/workbox-build/node_modules/@rollup/plugin-replace": { + "version": "2.4.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "magic-string": "^0.25.7" + }, + "peerDependencies": { + "rollup": "^1.20.0 || ^2.0.0" + } + }, + "node_modules/workbox-build/node_modules/@rollup/pluginutils": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "node_modules/workbox-build/node_modules/@types/estree": { + "version": "0.0.39", + "dev": true, + "license": "MIT" + }, + "node_modules/workbox-build/node_modules/estree-walker": { + "version": "1.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/workbox-build/node_modules/magic-string": { + "version": "0.25.9", + "dev": true, + "license": "MIT", + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, + "node_modules/workbox-build/node_modules/picomatch": { + "version": "2.3.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/workbox-build/node_modules/pretty-bytes": { + "version": "5.6.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/workbox-build/node_modules/rollup": { + "version": "2.80.0", + "dev": true, + "license": "MIT", + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/workbox-cacheable-response": { + "version": "7.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "workbox-core": "7.4.0" + } + }, + "node_modules/workbox-core": { + "version": "7.4.0", + "dev": true, + "license": "MIT" + }, + "node_modules/workbox-expiration": { + "version": "7.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "idb": "^7.0.1", + "workbox-core": "7.4.0" + } + }, + "node_modules/workbox-google-analytics": { + "version": "7.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "workbox-background-sync": "7.4.0", + "workbox-core": "7.4.0", + "workbox-routing": "7.4.0", + "workbox-strategies": "7.4.0" + } + }, + "node_modules/workbox-navigation-preload": { + "version": "7.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "workbox-core": "7.4.0" + } + }, + "node_modules/workbox-precaching": { + "version": "7.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "workbox-core": "7.4.0", + "workbox-routing": "7.4.0", + "workbox-strategies": "7.4.0" + } + }, + "node_modules/workbox-range-requests": { + "version": "7.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "workbox-core": "7.4.0" + } + }, + "node_modules/workbox-recipes": { + "version": "7.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "workbox-cacheable-response": "7.4.0", + "workbox-core": "7.4.0", + "workbox-expiration": "7.4.0", + "workbox-precaching": "7.4.0", + "workbox-routing": "7.4.0", + "workbox-strategies": "7.4.0" + } + }, + "node_modules/workbox-routing": { + "version": "7.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "workbox-core": "7.4.0" + } + }, + "node_modules/workbox-strategies": { + "version": "7.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "workbox-core": "7.4.0" + } + }, + "node_modules/workbox-streams": { + "version": "7.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "workbox-core": "7.4.0", + "workbox-routing": "7.4.0" + } + }, + "node_modules/workbox-sw": { + "version": "7.4.0", + "dev": true, + "license": "MIT" + }, + "node_modules/workbox-window": { + "version": "7.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/trusted-types": "^2.0.2", + "workbox-core": "7.4.0" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "dev": true, + "license": "ISC" + }, "node_modules/zimmerframe": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/zimmerframe/-/zimmerframe-1.1.4.tgz", - "integrity": "sha512-B58NGBEoc8Y9MWWCQGl/gq9xBCe4IiKM0a2x7GZdQKOW5Exr8S1W24J6OgM1njK8xCRGvAJIL/MxXHf6SkmQKQ==", "dev": true, "license": "MIT" } diff --git a/package.json b/package.json index 689fa47..b73e7c8 100644 --- a/package.json +++ b/package.json @@ -4,24 +4,25 @@ "version": "1.0.0", "type": "module", "repository": { - "type": "git", - "url": "git+https://github.com/tiennm99/sokoban.git" + "type": "git", + "url": "git+https://github.com/tiennm99/sokoban.git" }, "author": "tiennm99", "license": "Apache-2.0", "licenseUrl": "https://www.apache.org/licenses/LICENSE-2.0", "bugs": { - "url": "https://github.com/tiennm99/sokoban/issues" + "url": "https://github.com/tiennm99/sokoban/issues" }, "homepage": "https://tiennm99.github.io/sokoban/", "scripts": { - "dev": "vite --config vite/config.dev.mjs", - "dev:codeserver": "vite --config vite/config.codeserver.mjs", - "build": "vite build --config vite/config.prod.mjs" + "dev": "vite --config vite/config.dev.mjs", + "dev:codeserver": "vite --config vite/config.codeserver.mjs", + "build": "vite build --config vite/config.prod.mjs" }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^5.0.3", "svelte": "^5.19.0", - "vite": "^6.4.2" + "vite": "^6.4.2", + "vite-plugin-pwa": "^1.2.0" } } diff --git a/public/apple-touch-icon.png b/public/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..43fd2e11ea12f9b85245b5d323ae0e8f3cdea331 GIT binary patch literal 14630 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 literal 0 HcmV?d00001 diff --git a/public/pwa-192x192.png b/public/pwa-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..11dd80906d53870b19cd60dad84498c421625fa9 GIT binary patch literal 5619 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 literal 0 HcmV?d00001 diff --git a/public/pwa-512x512.png b/public/pwa-512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..899cac1871e3c4c1522530a2375dc0080ad6a0ae GIT binary patch literal 17896 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 LxnFYEI_&=g5~8El literal 0 HcmV?d00001 diff --git a/vite/config.prod.mjs b/vite/config.prod.mjs index 70fffe5..48ecef2 100644 --- a/vite/config.prod.mjs +++ b/vite/config.prod.mjs @@ -1,7 +1,33 @@ import { defineConfig } from 'vite'; import { svelte } from '@sveltejs/vite-plugin-svelte'; +import { VitePWA } from 'vite-plugin-pwa'; export default defineConfig({ base: '/sokoban/', - plugins: [svelte()] + plugins: [ + svelte(), + VitePWA({ + registerType: 'autoUpdate', + includeAssets: ['favicon.png', 'apple-touch-icon.png'], + manifest: { + name: 'Sokoban', + short_name: 'Sokoban', + description: 'Microban Sokoban puzzles, Svelte edition', + start_url: '/sokoban/', + scope: '/sokoban/', + display: 'standalone', + orientation: 'any', + background_color: '#2e3440', + theme_color: '#5e81ac', + icons: [ + { src: 'pwa-192x192.png', sizes: '192x192', type: 'image/png' }, + { src: 'pwa-512x512.png', sizes: '512x512', type: 'image/png' }, + { src: 'pwa-512x512.png', sizes: '512x512', type: 'image/png', purpose: 'maskable' } + ] + }, + workbox: { + globPatterns: ['**/*.{js,css,html,png,svg,webmanifest}'] + } + }) + ] });