diff --git a/.env b/.env index 2da5ab72..e8316933 100755 --- a/.env +++ b/.env @@ -1,6 +1,6 @@ -VITE_APP_VERSION="1.2.28" +VITE_APP_VERSION="1.2.29" VITE_LANG_DEFAULT="it" VITE_PAO_APP_ID="KKPPAA5KJK435J3KSS9F9D8S9F8SD98F9SDF" -VITE_SERVICE_WORKER_FILE="sw-1.2.28.js" +VITE_SERVICE_WORKER_FILE="sw-1.2.29.js" VITE_PROJECT_ID_MAIN="5cc0a13fe5c9d156728f400a" VITE_VUE_ROUTER_MODE="history" \ No newline at end of file diff --git a/.env.development b/.env.development index 2e49e3a2..4267996f 100755 --- a/.env.development +++ b/.env.development @@ -1,12 +1,13 @@ -VITE_APP_ID="16" -VITE_APP_URL="https://localhost" VITE_MONGODB_HOST="https://localhost:3000" -VITE_LOGO_REG='kolibrilab-logo-full.png' VITE_PUBLICKEY_PUSH='BDncvMiUZmjaCG2Kr1V9N0_33hOG-AuNSbHSvL24y2dzBiUjAxKm02emx5SeJvz2IGmtRf6YqCgopeQwCwUmZw8' +VITE_PROJECT_ID_MAIN="5cc0a13fe5c9d156728f400a" +VITE_VUE_APP_ISTEST="1" +VITE_VUE_APP_INLOCALE="1" VITE_DEBUG="1" -VITE_VUE_APP_ISTEST=0 -VITE_VUE_APP_INLOCALE=1 -DIRECTORY_LOCAL="newfreeplanet" -DIRECTORY_SERVER="freeplanet_serverside" +VITE_APP_ID="13" +VITE_LOGO_REG='riso-logo-full.png' +VITE_APP_URL="https://localhost" +DIRECTORY_LOCAL=myprojplanet_vite +DIRECTORY_SERVER=freeplanet_serverside SERVERDIR_WEBSITE="" -SERVERPW_WEBSITE="" +SERVERPW_WEBSITE="" \ No newline at end of file diff --git a/.env.production b/.env.production index 8f1dd466..e834adfe 100644 --- a/.env.production +++ b/.env.production @@ -1,11 +1,11 @@ -VITE_APP_ID="16" -VITE_APP_URL="https://kolibrilab.it" -VITE_MONGODB_HOST="https://www.freeplanet.app:3000" -VITE_LOGO_REG='kolibrilab-logo-full.png' -VITE_PUBLICKEY_PUSH="BNM-cEpTbPVc_ujXf3QOC8ggf7b-X44P44esfJUWqNOFq1XhWCoZJpOi71_cbXC5SnfO9HassQ6OouAYgtBA9Pw" -VITE_DEBUG="0" -VITE_VUE_APP_ISTEST=0 -DIRECTORY_LOCAL=newfreeplanet -DIRECTORY_SERVER=freeplanet_serverside -SERVERDIR_WEBSITE=kolibrilab.it -SERVERPW_WEBSITE=pwdadmin@1AOK +VITE_APP_ID="13" +VITE_APP_URL="https://test.riso.app" +VITE_MONGODB_HOST="https://testapi.riso.app" +VITE_LOGO_REG="riso-logo-full.png" +VITE_PUBLICKEY_PUSH="BGXRf1TgcqocqD6J7qnRgCG7AvM2lxAoW7peb7UEzB4SxBb6DxGRdJ0UvD9ewnrB9KrSrh0-aDCODXBm7sZ1DDs" +VITE_DEBUG="1" +VITE_VUE_APP_ISTEST="1" +DIRECTORY_LOCAL="myprojplanet_vite" +DIRECTORY_SERVER="/var/www/nodejs_test.riso_server" +SERVERDIR_WEBSITE="/var/www/test.riso.app" +SERVERPW_WEBSITE="pwdadmin@1AOK" \ No newline at end of file diff --git a/index.html b/index.html index 566789e9..90892857 100755 --- a/index.html +++ b/index.html @@ -10,7 +10,7 @@ - + diff --git a/package.json b/package.json index 847e973f..b69745f2 100755 --- a/package.json +++ b/package.json @@ -1,139 +1,143 @@ { - "name": "kolibrilab", - "version": "0.5.3", - "description": "kolibrilab", - "productName": "kolibrilab", - "author": "Surya Paolo", + "name": "riso", + "version": "1.2.29", + "description": "Siamo la Rete Italiana di Scambio Orizzontale, abbiamo creato questa piattaforma per metterla al servizio di chi vuole riscoprire il valore della condivisione e della cooperazione. Valori semplici e profondi che ci aiutano a ritrovare il Senso della Vita, perduto in questa società consumista, e riporti quei Sani Pricìpi Naturali ed Umani di Fratellanza che intere popolazioni antiche conoscevano bene.", + "productName": "Riso", + "author": "Surya", "private": true, "keywords": [], "license": "MIT", + "type": "module", "scripts": { - "dev": "quasar dev", + "dev": "APP_VERSION='1.2.29' PORT=8084 quasar dev", + "dev_noCheck": "SKIP_TSC=true quasar dev", "build": "quasar build", - "buildpwa": "NODE_ENV=production quasar build -m pwa", + "buildpwa": "NODE_ENV=production APP_VERSION='1.2.29' quasar build -m pwa", + "buildpwatest": "NODE_ENV=production APP_VERSION='1.2.29' quasar build -m pwa", + "type-check": "vue-tsc --noEmit", + "type-check:watch": "vue-tsc --noEmit --watch", "buildspa": "quasar build -m spa", - "lint": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./", + "lint": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\"", "lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt", "lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt", - "fix": "eslint --ext .ts,.vue --ignore-path .gitignore ./ --fix > file.out.txt", - "pwa": "NODE_ENV=development NODE_OPTIONS=--max_old_space_size=4096 DEBUG=v8:* quasar dev -m pwa", - "spa": "NODE_ENV=development NODE_OPTIONS=--max_old_space_size=4096 DEBUG=v8:* quasar dev -m spa", - "spanorefresh": "NODE_ENV=development NODE_OPTIONS=--max_old_space_size=4096 DEBUG=v8:* quasar dev -m spa", + "fix": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\" --ignore-pattern .gitignore ./ --fix > file.out.txt", + "pwa": "NODE_ENV=development PORT=8094 APP_VERSION='1.2.29' quasar dev -m pwa", + "spa": "NODE_ENV=development PORT=8084 APP_VERSION='1.2.29' quasar dev", + "debug": "quasar dev --mode debug", "test": "echo \"No test specified\" && exit 0", - "generate-sw": "workbox generateSW workbox-config.js" + "generate-sw": "workbox generateSW workbox-config.js", + "postinstall": "quasar prepare" }, "dependencies": { - "@quasar/extras": "^1.15.5", - "@quasar/quasar-ui-qcalendar": "^4.0.0-beta.13", - "@vue-leaflet/vue-leaflet": "^0.6.1", - "@vue/compat": "^3.2.45", - "@vue/compiler-sfc": "^3.2.45", - "@vue/eslint-config-standard": "7.0.0", - "@vuelidate/core": "^2.0.0", - "@vuelidate/validators": "^2.0.0", - "acorn": "^8.8.1", + "@cubejs-client/core": "^1.2.26", + "@quasar/extras": "^1.16.17", + "@quasar/quasar-ui-qcalendar": "^4.1.2", + "@types/jsbarcode": "^3.11.4", + "@types/leaflet": "^1.9.17", + "@vue/compat": "^3.5.13", + "@vue/compiler-sfc": "^3.5.13", + "@vuelidate/core": "^2.0.3", + "@vuelidate/validators": "^2.0.4", + "acorn": "^8.14.1", "animate.css": "^4.1.1", - "autoprefixer": "^10.4.13", - "axios": "^1.1.3", - "bcryptjs": "^2.4.3", - "chart.js": "^3.9.1", - "core-js": "^3.26.0", - "date-fns": "^2.29.3", - "dotenv": "^16.0.3", - "echarts": "^5.4.0", - "eslint-plugin-quasar": "^1.1.1", - "eslint-plugin-standard": "^5.0.0", - "graphql": "^16.6.0", + "autoprefixer": "^10.4.21", + "axios": "^1.8.4", + "bcryptjs": "^3.0.2", + "chart.js": "^4.4.8", + "core-js": "^3.41.0", + "crypto-browserify": "^3.12.1", + "date-fns": "^4.1.0", + "echarts": "5.6.0", + "eslint-plugin-n": "^17.16.2", + "eslint-plugin-quasar": "^1.1.0", + "graphql": "^16.10.0", "graphql-tag": "^2.12.6", - "gsap": "^3.11.3", - "jquery": "^3.6.1", - "js-cookie": "^3.0.1", + "gsap": "^3.12.7", + "html2pdf.js": "^0.10.3", + "jquery": "^3.7.1", + "js-cookie": "^3.0.5", + "jsbarcode": "^3.11.6", + "leaflet": "^1.9.4", + "leaflet-routing-machine": "^3.2.12", + "leaflet.markercluster": "^1.5.3", "localforage": "^1.10.0", "lodash": "^4.17.21", "normalize.css": "^8.0.1", - "npm": "^9.1.1", "nprogress": "^0.2.0", - "pinia": "^2.0.23", - "prerender-spa-plugin": "^3.4.0", - "quasar": "^2.10.1", + "pinia": "^3.0.1", + "qrcode-vue3": "^1.7.1", + "quasar": "^2.18.1", "quasar-extras": "^2.0.9", "register-service-worker": "^1.7.2", - "vee-validate": "^4.7.2", - "vue": "^3.2.45", - "vue-chart-3": "^3.1.8", + "scrollreveal": "^4.0.9", + "typescript-eslint": "^8.27.0", + "vee-validate": "^4.15.0", + "vue": "^3.5.13", "vue-class-component": "^8.0.0-rc.1", "vue-country-code": "^1.1.3", - "vue-echarts": "^6.2.3", - "vue-i18n": "^9.2.2", + "vue-echarts": "^7.0.3", + "vue-i18n": "^11.1.2", "vue-idb": "^0.2.0", - "vue-loader": "^17.0.1", + "vue-image-zoomer": "^2.4.4", "vue-property-decorator": "^10.0.0-rc.3", - "vue-router": "^4.1.6", - "vue-scroll-reveal": "^1.0.11", + "vue-router": "^4.5.0", + "vue-scroll-reveal": "^2.1.0", + "vue-social-sharing": "^4.0.0-alpha4", "vue-svgicon": "^4.0.0-alpha.3", + "vue-timeago3": "^2.3.2", "vue2-dragula": "^2.5.5", + "vue3-pdf-app": "^1.0.3", + "vue3-qr-reader": "^1.0.0", "vuex": "^4.1.0", - "vuex-router-sync": "^6.0.0-rc.1" + "vuex-router-sync": "^6.0.0-rc.1", + "workbox-core": "^7.3.0", + "workbox-precaching": "^7.3.0", + "workbox-routing": "^7.3.0", + "workbox-strategies": "^7.3.0", + "workbox-window": "^7.3.0" }, "devDependencies": { - "@quasar/app": "^3.3.3", - "@types/bcryptjs": "^2.4.2", - "@types/dotenv": "^8.2.0", - "@types/googlemaps": "^3.43.3", - "@types/jest": "^29.2.2", - "@types/js-cookie": "^3.0.2", - "@types/node": "18.11.9", - "@types/nprogress": "^0.2.0", - "@types/vue-tel-input": "^2.1.2", - "@types/vuelidate": "^0.7.15", - "@typescript-eslint/eslint-plugin": "^5.42.1", - "@typescript-eslint/parser": "^5.42.1", - "eslint": "^8.27.0", - "eslint-config-prettier": "^8.5.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-node": "^11.1.1", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-vue": "^9.7.0", + "@eslint/js": "^9.23.0", + "@intlify/unplugin-vue-i18n": "^6.0.5", + "@quasar/app-vite": "^2.1.4", + "@types/google.maps": "^3.58.1", + "@types/jest": "^29.5.14", + "@types/js-cookie": "^3.0.6", + "@types/node": "^22.13.11", + "@types/nprogress": "^0.2.3", + "@types/vue-tel-input": "^2.1.7", + "@types/vuelidate": "^0.7.22", + "@vue/devtools": "^7.7.2", + "@vue/eslint-config-prettier": "^10.2.0", + "@vue/eslint-config-typescript": "^14.5.0", + "autoprefixer": "^10.4.21", + "eslint": "9", + "eslint-plugin-import": "^2.31.0", + "eslint-plugin-vue": "^10.0.0", "file-loader": "^6.2.0", - "html-webpack-plugin": "^5.5.0", - "http-proxy-middleware": "^2.0.6", - "jest": "^29.3.1", + "globals": "^16.0.0", + "http-proxy-middleware": "^3.0.3", + "jest": "^29.7.0", "json-loader": "^0.5.7", - "node-sass": "7.0.1", - "npm-check-updates": "^16.3.25", - "optimize-css-assets-webpack-plugin": "^6.0.1", - "postcss": "^8.4.19", - "postcss-loader": "^7.0.1", - "sass-loader": "^13.2.0", - "strip-ansi": "=7.0.1", - "ts-jest": "^29.0.3", - "ts-loader": "^9.4.1", - "tslint": "^6.1.3", - "tslint-config-standard": "^9.0.0", - "tslint-loader": "^3.5.4", - "typescript": "^4.8.4", + "nodemon": "^3.1.9", + "npm-check-updates": "^17.1.16", + "parcel": "^2.14.1", + "postcss": "^8.5.3", + "postcss-loader": "^8.1.1", + "prettier": "3", + "strip-ansi": "=7.1.0", + "ts-jest": "^29.2.6", + "typescript": "5.7.3", + "vite-plugin-checker": "^0.9.1", "vue-cli-plugin-element-ui": "^1.1.4", + "vue-eslint-parser": "^10.1.1", + "vue-tsc": "^2.2.8", "vueify": "^9.4.1", - "webpack": "^5.75.0", - "workbox-webpack-plugin": "^6.5.4" + "workbox-build": "^7.3.0" }, - "browser": { - "crypto": false - }, - "browserslist": [ - "last 16 Chrome versions", - "last 16 Firefox versions", - "last 4 Edge versions", - "last 13 Safari versions", - "last 16 Android versions", - "last 16 ChromeAndroid versions", - "last 16 FirefoxAndroid versions", - "last 12 iOS versions", - "last 7 Opera versions" - ], "engines": { - "node": ">= 16.14.0", - "npm": ">= 6.14.8", + "node": "^28 || ^26 || ^24 || ^22 || ^20 || ^18", + "npm": ">= 6.13.4", "yarn": ">= 1.21.1" } -} \ No newline at end of file +} diff --git a/public/favicon.ico b/public/favicon.ico index d7267659..d283c964 100644 Binary files a/public/favicon.ico and b/public/favicon.ico differ diff --git a/public/images/1ris_rosso.png b/public/images/1ris_rosso.png new file mode 100644 index 00000000..c1aff3ec Binary files /dev/null and b/public/images/1ris_rosso.png differ diff --git a/public/images/1ris_rosso_100.png b/public/images/1ris_rosso_100.png new file mode 100644 index 00000000..267f9158 Binary files /dev/null and b/public/images/1ris_rosso_100.png differ diff --git a/public/images/all_together.jpg b/public/images/all_together.jpg new file mode 100755 index 00000000..07667df4 Binary files /dev/null and b/public/images/all_together.jpg differ diff --git a/public/images/android-chrome-192x192.png b/public/images/android-chrome-192x192.png new file mode 100644 index 00000000..95b960e9 Binary files /dev/null and b/public/images/android-chrome-192x192.png differ diff --git a/public/images/avatar-1.svg b/public/images/avatar-1.svg new file mode 100755 index 00000000..e12224c5 --- /dev/null +++ b/public/images/avatar-1.svg @@ -0,0 +1,195 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/images/badge-96x96.png b/public/images/badge-96x96.png new file mode 100644 index 00000000..d1a5cddf Binary files /dev/null and b/public/images/badge-96x96.png differ diff --git a/public/images/calendario_eventi.jpg b/public/images/calendario_eventi.jpg new file mode 100755 index 00000000..0fb6962d Binary files /dev/null and b/public/images/calendario_eventi.jpg differ diff --git a/public/images/cibo_sano.jpg b/public/images/cibo_sano.jpg new file mode 100755 index 00000000..7a88ebb5 Binary files /dev/null and b/public/images/cibo_sano.jpg differ diff --git a/public/images/cover.jpg b/public/images/cover.jpg new file mode 100755 index 00000000..af6d14f1 Binary files /dev/null and b/public/images/cover.jpg differ diff --git a/public/images/de.png b/public/images/de.png new file mode 100755 index 00000000..97cb239c Binary files /dev/null and b/public/images/de.png differ diff --git a/public/images/es.png b/public/images/es.png new file mode 100755 index 00000000..d66a9504 Binary files /dev/null and b/public/images/es.png differ diff --git a/public/images/gb.png b/public/images/gb.png new file mode 100755 index 00000000..fa38aaa5 Binary files /dev/null and b/public/images/gb.png differ diff --git a/public/images/group-together.jpg b/public/images/group-together.jpg new file mode 100755 index 00000000..58cafa43 Binary files /dev/null and b/public/images/group-together.jpg differ diff --git a/public/images/hand_people.jpg b/public/images/hand_people.jpg new file mode 100755 index 00000000..19671ef5 Binary files /dev/null and b/public/images/hand_people.jpg differ diff --git a/public/images/icon.png b/public/images/icon.png new file mode 100644 index 00000000..ddf8a46c Binary files /dev/null and b/public/images/icon.png differ diff --git a/public/images/imglogonotif.png b/public/images/imglogonotif.png new file mode 100644 index 00000000..95b960e9 Binary files /dev/null and b/public/images/imglogonotif.png differ diff --git a/public/images/install_app_on_android_1.jpg b/public/images/install_app_on_android_1.jpg new file mode 100644 index 00000000..ec5a0899 Binary files /dev/null and b/public/images/install_app_on_android_1.jpg differ diff --git a/public/images/install_app_on_android_2.jpg b/public/images/install_app_on_android_2.jpg new file mode 100644 index 00000000..97df25c1 Binary files /dev/null and b/public/images/install_app_on_android_2.jpg differ diff --git a/public/images/install_app_on_android_3.jpg b/public/images/install_app_on_android_3.jpg new file mode 100644 index 00000000..88c316cb Binary files /dev/null and b/public/images/install_app_on_android_3.jpg differ diff --git a/public/images/install_app_on_ios_1.png b/public/images/install_app_on_ios_1.png new file mode 100644 index 00000000..bfe9f9de Binary files /dev/null and b/public/images/install_app_on_ios_1.png differ diff --git a/public/images/install_app_on_ios_1b.jpg b/public/images/install_app_on_ios_1b.jpg new file mode 100644 index 00000000..a9ff9893 Binary files /dev/null and b/public/images/install_app_on_ios_1b.jpg differ diff --git a/public/images/install_app_on_ios_2.jpg b/public/images/install_app_on_ios_2.jpg new file mode 100644 index 00000000..f05f86d8 Binary files /dev/null and b/public/images/install_app_on_ios_2.jpg differ diff --git a/public/images/it.png b/public/images/it.png new file mode 100755 index 00000000..3db1442f Binary files /dev/null and b/public/images/it.png differ diff --git a/public/images/landing_first_section.png b/public/images/landing_first_section.png new file mode 100755 index 00000000..328d9af7 Binary files /dev/null and b/public/images/landing_first_section.png differ diff --git a/public/images/layers-2x.png b/public/images/layers-2x.png new file mode 100644 index 00000000..200c333d Binary files /dev/null and b/public/images/layers-2x.png differ diff --git a/public/images/layers.png b/public/images/layers.png new file mode 100644 index 00000000..1a72e578 Binary files /dev/null and b/public/images/layers.png differ diff --git a/public/images/marker-icon-2x.png b/public/images/marker-icon-2x.png new file mode 100644 index 00000000..88f9e501 Binary files /dev/null and b/public/images/marker-icon-2x.png differ diff --git a/public/images/marker-icon.png b/public/images/marker-icon.png new file mode 100644 index 00000000..950edf24 Binary files /dev/null and b/public/images/marker-icon.png differ diff --git a/public/images/marker-shadow.png b/public/images/marker-shadow.png new file mode 100644 index 00000000..9fd29795 Binary files /dev/null and b/public/images/marker-shadow.png differ diff --git a/public/images/mountains.jpg b/public/images/mountains.jpg new file mode 100755 index 00000000..83fef46b Binary files /dev/null and b/public/images/mountains.jpg differ diff --git a/public/images/noimg-user.jpg b/public/images/noimg-user.jpg new file mode 100644 index 00000000..af5c34a7 Binary files /dev/null and b/public/images/noimg-user.jpg differ diff --git a/public/images/noimg-user.svg b/public/images/noimg-user.svg new file mode 100644 index 00000000..10ea11c8 --- /dev/null +++ b/public/images/noimg-user.svg @@ -0,0 +1 @@ +profile pic \ No newline at end of file diff --git a/public/images/noimg.png b/public/images/noimg.png new file mode 100644 index 00000000..dc14c4b5 Binary files /dev/null and b/public/images/noimg.png differ diff --git a/public/images/opz1-icon-96x96.jpg b/public/images/opz1-icon-96x96.jpg new file mode 100755 index 00000000..32d09c99 Binary files /dev/null and b/public/images/opz1-icon-96x96.jpg differ diff --git a/public/images/opz2-icon-96x96.jpg b/public/images/opz2-icon-96x96.jpg new file mode 100755 index 00000000..32d09c99 Binary files /dev/null and b/public/images/opz2-icon-96x96.jpg differ diff --git a/public/images/paypal.jpg b/public/images/paypal.jpg new file mode 100755 index 00000000..a6173a79 Binary files /dev/null and b/public/images/paypal.jpg differ diff --git a/public/images/regalo.jpg b/public/images/regalo.jpg new file mode 100755 index 00000000..32d09c99 Binary files /dev/null and b/public/images/regalo.jpg differ diff --git a/public/images/revolut.jpg b/public/images/revolut.jpg new file mode 100755 index 00000000..35e00b0b Binary files /dev/null and b/public/images/revolut.jpg differ diff --git a/public/images/riso-android-icon-144x144.png b/public/images/riso-android-icon-144x144.png new file mode 100644 index 00000000..37dcd661 Binary files /dev/null and b/public/images/riso-android-icon-144x144.png differ diff --git a/public/images/riso-android-icon-192x192.png b/public/images/riso-android-icon-192x192.png new file mode 100644 index 00000000..95b960e9 Binary files /dev/null and b/public/images/riso-android-icon-192x192.png differ diff --git a/public/images/riso-android-icon-384x384.png b/public/images/riso-android-icon-384x384.png new file mode 100644 index 00000000..ce1ffc47 Binary files /dev/null and b/public/images/riso-android-icon-384x384.png differ diff --git a/public/images/riso-android-icon-48x48.png b/public/images/riso-android-icon-48x48.png new file mode 100644 index 00000000..499e8674 Binary files /dev/null and b/public/images/riso-android-icon-48x48.png differ diff --git a/public/images/riso-android-icon-512x512.png b/public/images/riso-android-icon-512x512.png new file mode 100644 index 00000000..e1c31acd Binary files /dev/null and b/public/images/riso-android-icon-512x512.png differ diff --git a/public/images/riso-android-icon-96x96.png b/public/images/riso-android-icon-96x96.png new file mode 100644 index 00000000..98dbf9d9 Binary files /dev/null and b/public/images/riso-android-icon-96x96.png differ diff --git a/public/images/riso-apple-icon-114x114.png b/public/images/riso-apple-icon-114x114.png new file mode 100644 index 00000000..882dd21c Binary files /dev/null and b/public/images/riso-apple-icon-114x114.png differ diff --git a/public/images/riso-apple-icon-120x120.png b/public/images/riso-apple-icon-120x120.png new file mode 100644 index 00000000..734b0503 Binary files /dev/null and b/public/images/riso-apple-icon-120x120.png differ diff --git a/public/images/riso-apple-icon-144x144.png b/public/images/riso-apple-icon-144x144.png new file mode 100644 index 00000000..923da7be Binary files /dev/null and b/public/images/riso-apple-icon-144x144.png differ diff --git a/public/images/riso-apple-icon-152x152.png b/public/images/riso-apple-icon-152x152.png new file mode 100644 index 00000000..84fd455d Binary files /dev/null and b/public/images/riso-apple-icon-152x152.png differ diff --git a/public/images/riso-apple-icon-180x180.png b/public/images/riso-apple-icon-180x180.png new file mode 100644 index 00000000..e457d906 Binary files /dev/null and b/public/images/riso-apple-icon-180x180.png differ diff --git a/public/images/riso-apple-icon-57x57.png b/public/images/riso-apple-icon-57x57.png new file mode 100644 index 00000000..f5f538db Binary files /dev/null and b/public/images/riso-apple-icon-57x57.png differ diff --git a/public/images/riso-apple-icon-60x60.png b/public/images/riso-apple-icon-60x60.png new file mode 100644 index 00000000..4121f834 Binary files /dev/null and b/public/images/riso-apple-icon-60x60.png differ diff --git a/public/images/riso-apple-icon-72x72.png b/public/images/riso-apple-icon-72x72.png new file mode 100644 index 00000000..5efd872d Binary files /dev/null and b/public/images/riso-apple-icon-72x72.png differ diff --git a/public/images/riso-apple-icon-76x76.png b/public/images/riso-apple-icon-76x76.png new file mode 100644 index 00000000..6db4b76f Binary files /dev/null and b/public/images/riso-apple-icon-76x76.png differ diff --git a/public/images/riso-apple-icon.png b/public/images/riso-apple-icon.png new file mode 100644 index 00000000..cfaeb3c0 Binary files /dev/null and b/public/images/riso-apple-icon.png differ diff --git a/public/images/riso-logo-full.png b/public/images/riso-logo-full.png new file mode 100644 index 00000000..51a29654 Binary files /dev/null and b/public/images/riso-logo-full.png differ diff --git a/public/images/riso_home.png b/public/images/riso_home.png new file mode 100644 index 00000000..3d065405 Binary files /dev/null and b/public/images/riso_home.png differ diff --git a/public/images/riso_home_dark.png b/public/images/riso_home_dark.png new file mode 100644 index 00000000..fe6b8225 Binary files /dev/null and b/public/images/riso_home_dark.png differ diff --git a/public/images/riso_services.png b/public/images/riso_services.png new file mode 100644 index 00000000..85a940bc Binary files /dev/null and b/public/images/riso_services.png differ diff --git a/public/js/fetch.js b/public/js/fetch.js new file mode 100755 index 00000000..5516b6e6 --- /dev/null +++ b/public/js/fetch.js @@ -0,0 +1,457 @@ +(function (self) { + if (self.fetch) { + return + } + + const support = { + searchParams: 'URLSearchParams' in self, + iterable: 'Symbol' in self && 'iterator' in Symbol, + blob: 'FileReader' in self && 'Blob' in self && (function () { + try { + new Blob() + return true + } catch (e) { + return false + } + }()), + formData: 'FormData' in self, + arrayBuffer: 'ArrayBuffer' in self, + } + + if (support.arrayBuffer) { + const viewClasses = [ + '[object Int8Array]', + '[object Uint8Array]', + '[object Uint8ClampedArray]', + '[object Int16Array]', + '[object Uint16Array]', + '[object Int32Array]', + '[object Uint32Array]', + '[object Float32Array]', + '[object Float64Array]', + ] + + var isDataView = function (obj) { + return obj && DataView.prototype.isPrototypeOf(obj) + } + + var isArrayBufferView = ArrayBuffer.isView || function (obj) { + return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1 + } + } + + function normalizeName(name) { + if (typeof name !== 'string') { + name = String(name) + } + if (/[^a-z0-9\-#$%&'*+.\^_`|~]/i.test(name)) { + throw new TypeError('Invalid character in header field nametranslate') + } + return name.toLowerCase() + } + + function normalizeValue(value) { + if (typeof value !== 'string') { + value = String(value) + } + return value + } + + // Build a destructive iterator for the value list + function iteratorFor(items) { + const iterator = { + next() { + const value = items.shift() + return { done: value === undefined, value } + }, + } + + if (support.iterable) { + iterator[Symbol.iterator] = function () { + return iterator + } + } + + return iterator + } + + function Headers(headers) { + this.map = {} + + if (headers instanceof Headers) { + headers.forEach(function (value, name) { + this.append(name, value) + }, this) + } else if (Array.isArray(headers)) { + headers.forEach(function (header) { + this.append(header[0], header[1]) + }, this) + } else if (headers) { + Object.getOwnPropertyNames(headers).forEach(function (name) { + this.append(name, headers[name]) + }, this) + } + } + + Headers.prototype.append = function (name, value) { + name = normalizeName(name) + value = normalizeValue(value) + const oldValue = this.map[name] + this.map[name] = oldValue ? `${oldValue},${value}` : value + } + + Headers.prototype.delete = function (name) { + delete this.map[normalizeName(name)] + } + + Headers.prototype.get = function (name) { + name = normalizeName(name) + return this.has(name) ? this.map[name] : null + } + + Headers.prototype.has = function (name) { + return this.map.hasOwnProperty(normalizeName(name)) + } + + Headers.prototype.set = function (name, value) { + this.map[normalizeName(name)] = normalizeValue(value) + } + + Headers.prototype.forEach = function (callback, thisArg) { + for (const name in this.map) { + if (this.map.hasOwnProperty(name)) { + callback.call(thisArg, this.map[name], name, this) + } + } + } + + Headers.prototype.keys = function () { + const items = [] + this.forEach((value, name) => { items.push(name) }) + return iteratorFor(items) + } + + Headers.prototype.values = function () { + const items = [] + this.forEach((value) => { items.push(value) }) + return iteratorFor(items) + } + + Headers.prototype.entries = function () { + const items = [] + this.forEach((value, name) => { items.push([name, value]) }) + return iteratorFor(items) + } + + if (support.iterable) { + Headers.prototype[Symbol.iterator] = Headers.prototype.entries + } + + function consumed(body) { + if (body.bodyUsed) { + return Promise.reject(new TypeError('Already read')) + } + body.bodyUsed = true + } + + function fileReaderReady(reader) { + return new Promise((resolve, reject) => { + reader.onload = function () { + resolve(reader.result) + } + reader.onerror = function () { + reject(reader.error) + } + }) + } + + function readBlobAsArrayBuffer(blob) { + const reader = new FileReader() + const promise = fileReaderReady(reader) + reader.readAsArrayBuffer(blob) + return promise + } + + function readBlobAsText(blob) { + const reader = new FileReader() + const promise = fileReaderReady(reader) + reader.readAsText(blob) + return promise + } + + function readArrayBufferAsText(buf) { + const view = new Uint8Array(buf) + const chars = new Array(view.length) + + for (let i = 0; i < view.length; i++) { + chars[i] = String.fromCharCode(view[i]) + } + return chars.join('') + } + + function bufferClone(buf) { + if (buf.slice) { + return buf.slice(0) + } + const view = new Uint8Array(buf.byteLength) + view.set(new Uint8Array(buf)) + return view.buffer + } + + function Body() { + this.bodyUsed = false + + this._initBody = function (body) { + this._bodyInit = body + if (!body) { + this._bodyText = '' + } else if (typeof body === 'string') { + this._bodyText = body + } else if (support.blob && Blob.prototype.isPrototypeOf(body)) { + this._bodyBlob = body + } else if (support.formData && FormData.prototype.isPrototypeOf(body)) { + this._bodyFormData = body + } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) { + this._bodyText = body.toString() + } else if (support.arrayBuffer && support.blob && isDataView(body)) { + this._bodyArrayBuffer = bufferClone(body.buffer) + // IE 10-11 can't handle a DataView body. + this._bodyInit = new Blob([this._bodyArrayBuffer]) + } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) { + this._bodyArrayBuffer = bufferClone(body) + } else { + throw new Error('unsupported BodyInit type') + } + + if (!this.headers.get('content-type')) { + if (typeof body === 'string') { + this.headers.set('content-type', 'text/plain;charset=UTF-8') + } else if (this._bodyBlob && this._bodyBlob.type) { + this.headers.set('content-type', this._bodyBlob.type) + } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) { + this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8') + } + } + } + + if (support.blob) { + this.blob = function () { + const rejected = consumed(this) + if (rejected) { + return rejected + } + + if (this._bodyBlob) { + return Promise.resolve(this._bodyBlob) + } if (this._bodyArrayBuffer) { + return Promise.resolve(new Blob([this._bodyArrayBuffer])) + } if (this._bodyFormData) { + throw new Error('could not read FormData body as blob') + } else { + return Promise.resolve(new Blob([this._bodyText])) + } + } + + this.arrayBuffer = function () { + if (this._bodyArrayBuffer) { + return consumed(this) || Promise.resolve(this._bodyArrayBuffer) + } + return this.blob().then(readBlobAsArrayBuffer) + } + } + + this.text = function () { + const rejected = consumed(this) + if (rejected) { + return rejected + } + + if (this._bodyBlob) { + return readBlobAsText(this._bodyBlob) + } if (this._bodyArrayBuffer) { + return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer)) + } if (this._bodyFormData) { + throw new Error('could not read FormData body as text') + } else { + return Promise.resolve(this._bodyText) + } + } + + if (support.formData) { + this.formData = function () { + return this.text().then(decode) + } + } + + this.json = function () { + return this.text().then(JSON.parse) + } + + return this + } + + // HTTP methods whose capitalization should be normalized + const methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT'] + + function normalizeMethod(method) { + const upcased = method.toUpperCase() + return (methods.indexOf(upcased) > -1) ? upcased : method + } + + function Request(input, options) { + options = options || {} + let { body } = options + + if (input instanceof Request) { + if (input.bodyUsed) { + throw new TypeError('Already read') + } + this.url = input.url + this.credentials = input.credentials + if (!options.headers) { + this.headers = new Headers(input.headers) + } + this.method = input.method + this.mode = input.mode + if (!body && input._bodyInit != null) { + body = input._bodyInit + input.bodyUsed = true + } + } else { + this.url = String(input) + } + + this.credentials = options.credentials || this.credentials || 'omit' + if (options.headers || !this.headers) { + this.headers = new Headers(options.headers) + } + this.method = normalizeMethod(options.method || this.method || 'GET') + this.mode = options.mode || this.mode || null + this.referrer = null + + if ((this.method === 'GET' || this.method === 'HEAD') && body) { + throw new TypeError('Body not allowed for GET or HEAD requests') + } + this._initBody(body) + } + + Request.prototype.clone = function () { + return new Request(this, { body: this._bodyInit }) + } + + function decode(body) { + const form = new FormData() + body.trim().split('&').forEach((bytes) => { + if (bytes) { + const split = bytes.split('=') + const name = split.shift().replace(/\+/g, ' ') + const value = split.join('=').replace(/\+/g, ' ') + form.append(decodeURIComponent(name), decodeURIComponent(value)) + } + }) + return form + } + + function parseHeaders(rawHeaders) { + const headers = new Headers() + rawHeaders.split(/\r?\n/).forEach((line) => { + const parts = line.split(':') + const key = parts.shift().trim() + if (key) { + const value = parts.join(':').trim() + headers.append(key, value) + } + }) + return headers + } + + Body.call(Request.prototype) + + function Response(bodyInit, options) { + if (!options) { + options = {} + } + + this.type = 'default' + this.status = 'status' in options ? options.status : 200 + this.ok = this.status >= 200 && this.status < 300 + this.statusText = 'statusText' in options ? options.statusText : 'OK' + this.headers = new Headers(options.headers) + this.url = options.url || '' + this._initBody(bodyInit) + } + + Body.call(Response.prototype) + + Response.prototype.clone = function () { + return new Response(this._bodyInit, { + status: this.status, + statusText: this.statusText, + headers: new Headers(this.headers), + url: this.url, + }) + } + + Response.error = function () { + const response = new Response(null, { status: 0, statusText: '' }) + response.type = 'error' + return response + } + + const redirectStatuses = [301, 302, 303, 307, 308] + + Response.redirect = function (url, status) { + if (redirectStatuses.indexOf(status) === -1) { + throw new RangeError('Invalid status code') + } + + return new Response(null, { status, headers: { location: url } }) + } + + self.Headers = Headers + self.Request = Request + self.Response = Response + + self.fetch = function (input, init) { + return new Promise((resolve, reject) => { + const request = new Request(input, init) + const xhr = new XMLHttpRequest() + + xhr.onload = function () { + const options = { + status: xhr.status, + statusText: xhr.statusText, + headers: parseHeaders(xhr.getAllResponseHeaders() || ''), + } + options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL') + const body = 'response' in xhr ? xhr.response : xhr.responseText + resolve(new Response(body, options)) + } + + xhr.onerror = function () { + reject(new TypeError('Network request failed')) + } + + xhr.ontimeout = function () { + reject(new TypeError('Network request failed')) + } + + xhr.open(request.method, request.url, true) + + if (request.credentials === 'include') { + xhr.withCredentials = true + } + + if ('responseType' in xhr && support.blob) { + xhr.responseType = 'blob' + } + + request.headers.forEach((value, name) => { + xhr.setRequestHeader(name, value) + }) + + xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit) + }) + } + self.fetch.polyfill = true +}(typeof self !== 'undefined' ? self : this)); diff --git a/public/js/globalenv.js b/public/js/globalenv.js new file mode 100755 index 00000000..f88f9996 --- /dev/null +++ b/public/js/globalenv.js @@ -0,0 +1,25 @@ +// importScripts('/public/js/immortal-db.min.js'); + +/* +const cfgenv = { + website: 'http://localhost:8081', + serverweb: 'http://localhost:3000', + dbname: 'mydb3', + dbversion: 10, +} +*/ + +/* +async function clearAllDataImmortal(table) { + console.log('clearAllDataImmortal', table) + const db = ImmortalDB.ImmortalDB + await db.remove(table) +} + +async function writeDataImmortal(table, datavalue) { + console.log('writeDataImmortal', table, datavalue) + const db = ImmortalDB.ImmortalDB + await db.set(table, datavalue) +} + +*/ diff --git a/public/js/idb.js b/public/js/idb.js new file mode 100755 index 00000000..6dfbd1d7 --- /dev/null +++ b/public/js/idb.js @@ -0,0 +1,307 @@ +(function () { + // console.log('LOADING IDB.JS .....') + function toArray(arr) { + return Array.prototype.slice.call(arr); + } + + function promisifyRequest(request) { + return new Promise((resolve, reject) => { + request.onsuccess = function () { + resolve(request.result); + }; + + request.onerror = function () { + reject(request.error); + }; + }); + } + + function promisifyRequestCall(obj, method, args) { + let request; + const p = new Promise((resolve, reject) => { + request = obj[method].apply(obj, args); + promisifyRequest(request).then(resolve, reject); + }); + + p.request = request; + return p; + } + + function promisifyCursorRequestCall(obj, method, args) { + const p = promisifyRequestCall(obj, method, args); + return p.then((value) => { + if (!value) return; + return new Cursor(value, p.request); + }); + } + + function proxyProperties(ProxyClass, targetProp, properties) { + properties.forEach((prop) => { + Object.defineProperty(ProxyClass.prototype, prop, { + get() { + return this[targetProp][prop]; + }, + set(val) { + this[targetProp][prop] = val; + }, + }); + }); + } + + function proxyRequestMethods(ProxyClass, targetProp, Constructor, properties) { + properties.forEach((prop) => { + if (!(prop in Constructor.prototype)) return; + ProxyClass.prototype[prop] = function () { + return promisifyRequestCall(this[targetProp], prop, arguments); + }; + }); + } + + function proxyMethods(ProxyClass, targetProp, Constructor, properties) { + properties.forEach((prop) => { + if (!(prop in Constructor.prototype)) return; + ProxyClass.prototype[prop] = function () { + return this[targetProp][prop].apply(this[targetProp], arguments); + }; + }); + } + + function proxyCursorRequestMethods(ProxyClass, targetProp, Constructor, properties) { + properties.forEach((prop) => { + if (!(prop in Constructor.prototype)) return; + ProxyClass.prototype[prop] = function () { + return promisifyCursorRequestCall(this[targetProp], prop, arguments); + }; + }); + } + + function Index(index) { + this._index = index; + } + + proxyProperties(Index, '_index', [ + 'name', + 'keyPath', + 'multiEntry', + 'unique', + ]); + + proxyRequestMethods(Index, '_index', IDBIndex, [ + 'get', + 'getKey', + 'getAll', + 'getAllKeys', + 'count', + ]); + + proxyCursorRequestMethods(Index, '_index', IDBIndex, [ + 'openCursor', + 'openKeyCursor', + ]); + + function Cursor(cursor, request) { + this._cursor = cursor; + this._request = request; + } + + proxyProperties(Cursor, '_cursor', [ + 'direction', + 'key', + 'primaryKey', + 'value', + ]); + + proxyRequestMethods(Cursor, '_cursor', IDBCursor, [ + 'update', + 'delete', + ]); + + // proxy 'next' methods + ['advance', 'continue', 'continuePrimaryKey'].forEach((methodName) => { + if (!(methodName in IDBCursor.prototype)) return; + Cursor.prototype[methodName] = function () { + const cursor = this; + const args = arguments; + return Promise.resolve().then(() => { + cursor._cursor[methodName].apply(cursor._cursor, args); + return promisifyRequest(cursor._request).then((value) => { + if (!value) return; + return new Cursor(value, cursor._request); + }); + }); + }; + }); + + function ObjectStore(store) { + this._store = store; + } + + ObjectStore.prototype.createIndex = function () { + return new Index(this._store.createIndex.apply(this._store, arguments)); + }; + + ObjectStore.prototype.index = function () { + return new Index(this._store.index.apply(this._store, arguments)); + }; + + proxyProperties(ObjectStore, '_store', [ + 'name', + 'keyPath', + 'indexNames', + 'autoIncrement', + ]); + + proxyRequestMethods(ObjectStore, '_store', IDBObjectStore, [ + 'put', + 'add', + 'delete', + 'clear', + 'get', + 'getAll', + 'getKey', + 'getAllKeys', + 'count', + ]); + + proxyCursorRequestMethods(ObjectStore, '_store', IDBObjectStore, [ + 'openCursor', + 'openKeyCursor', + ]); + + proxyMethods(ObjectStore, '_store', IDBObjectStore, [ + 'deleteIndex', + ]); + + function Transaction(idbTransaction) { + this._tx = idbTransaction; + this.complete = new Promise((resolve, reject) => { + idbTransaction.oncomplete = function () { + resolve(); + }; + idbTransaction.onerror = function () { + reject(idbTransaction.error); + }; + idbTransaction.onabort = function () { + reject(idbTransaction.error); + }; + }); + } + + Transaction.prototype.objectStore = function () { + return new ObjectStore(this._tx.objectStore.apply(this._tx, arguments)); + }; + + proxyProperties(Transaction, '_tx', [ + 'objectStoreNames', + 'mode', + ]); + + proxyMethods(Transaction, '_tx', IDBTransaction, [ + 'abort', + ]); + + function UpgradeDB(db, oldVersion, transaction) { + this._db = db; + this.oldVersion = oldVersion; + this.transaction = new Transaction(transaction); + } + + UpgradeDB.prototype.createObjectStore = function () { + return new ObjectStore(this._db.createObjectStore.apply(this._db, arguments)); + }; + + proxyProperties(UpgradeDB, '_db', [ + 'name', + 'version', + 'objectStoreNames', + ]); + + proxyMethods(UpgradeDB, '_db', IDBDatabase, [ + 'deleteObjectStore', + 'close', + ]); + + function DB(db) { + this._db = db; + } + + DB.prototype.transaction = function () { + return new Transaction(this._db.transaction.apply(this._db, arguments)); + }; + + proxyProperties(DB, '_db', [ + 'name', + 'version', + 'objectStoreNames', + ]); + + proxyMethods(DB, '_db', IDBDatabase, [ + 'close', + ]); + + // Add cursor iterators + // TODO: remove this once browsers do the right thing with promises + ['openCursor', 'openKeyCursor'].forEach((funcName) => { + [ObjectStore, Index].forEach((Constructor) => { + Constructor.prototype[funcName.replace('open', 'iterate')] = function () { + const args = toArray(arguments); + const callback = args[args.length - 1]; + const nativeObject = this._store || this._index; + const request = nativeObject[funcName].apply(nativeObject, args.slice(0, -1)); + request.onsuccess = function () { + callback(request.result); + }; + }; + }); + }); + + // polyfill getAll + [Index, ObjectStore].forEach((Constructor) => { + if (Constructor.prototype.getAll) return; + Constructor.prototype.getAll = function (query, count) { + const instance = this; + const items = []; + + return new Promise((resolve) => { + instance.iterateCursor(query, (cursor) => { + if (!cursor) { + resolve(items); + return; + } + items.push(cursor.value); + + if (!!count && items.length == count) { + resolve(items); + return; + } + cursor.continue(); + }); + }); + }; + }); + + const exp = { + open(name, version, upgradeCallback) { + const p = promisifyRequestCall(indexedDB, 'open', [name, version]); + const { request } = p; + + request.onupgradeneeded = function (event) { + if (upgradeCallback) { + upgradeCallback(new UpgradeDB(request.result, event.oldVersion, request.transaction)); + } + }; + + return p.then((db) => new DB(db)); + }, + delete(name) { + return promisifyRequestCall(indexedDB, 'deleteDatabase', [name]); + }, + }; + + if (typeof module !== 'undefined') { + module.exports = exp; + module.exports.default = module.exports; + } else { + self.idb = exp; + } +}()); diff --git a/public/js/material.min.js b/public/js/material.min.js new file mode 100755 index 00000000..46524fbc --- /dev/null +++ b/public/js/material.min.js @@ -0,0 +1,10 @@ +/** + * material-design-lite - Material Design Components in CSS, JS and HTML + * @version v1.3.0 + * @license Apache-2.0 + * @copyright 2015 Google, Inc. + * @link https://github.com/google/material-design-lite + */ +!function(){"use strict";function e(e,t){if(e){if(t.element_.classList.contains(t.CssClasses_.MDL_JS_RIPPLE_EFFECT)){var s=document.createElement("span");s.classList.add(t.CssClasses_.MDL_RIPPLE_CONTAINER),s.classList.add(t.CssClasses_.MDL_JS_RIPPLE_EFFECT);var i=document.createElement("span");i.classList.add(t.CssClasses_.MDL_RIPPLE),s.appendChild(i),e.appendChild(s)}e.addEventListener("click",function(s){if("#"===e.getAttribute("href").charAt(0)){s.preventDefault();var i=e.href.split("#")[1],n=t.element_.querySelector("#"+i);t.resetTabState_(),t.resetPanelState_(),e.classList.add(t.CssClasses_.ACTIVE_CLASS),n.classList.add(t.CssClasses_.ACTIVE_CLASS)}})}}function t(e,t,s,i){function n(){var n=e.href.split("#")[1],a=i.content_.querySelector("#"+n);i.resetTabState_(t),i.resetPanelState_(s),e.classList.add(i.CssClasses_.IS_ACTIVE),a.classList.add(i.CssClasses_.IS_ACTIVE)}if(i.tabBar_.classList.contains(i.CssClasses_.JS_RIPPLE_EFFECT)){var a=document.createElement("span");a.classList.add(i.CssClasses_.RIPPLE_CONTAINER),a.classList.add(i.CssClasses_.JS_RIPPLE_EFFECT);var l=document.createElement("span");l.classList.add(i.CssClasses_.RIPPLE),a.appendChild(l),e.appendChild(a)}i.tabBar_.classList.contains(i.CssClasses_.TAB_MANUAL_SWITCH)||e.addEventListener("click",function(t){"#"===e.getAttribute("href").charAt(0)&&(t.preventDefault(),n())}),e.show=n}var s={upgradeDom:function(e,t){},upgradeElement:function(e,t){},upgradeElements:function(e){},upgradeAllRegistered:function(){},registerUpgradedCallback:function(e,t){},register:function(e){},downgradeElements:function(e){}};s=function(){function e(e,t){for(var s=0;s0&&l(t.children))}function o(t){var s="undefined"==typeof t.widget&&"undefined"==typeof t.widget,i=!0;s||(i=t.widget||t.widget);var n={classConstructor:t.constructor||t.constructor,className:t.classAsString||t.classAsString,cssClass:t.cssClass||t.cssClass,widget:i,callbacks:[]};if(c.forEach(function(e){if(e.cssClass===n.cssClass)throw new Error("The provided cssClass has already been registered: "+e.cssClass);if(e.className===n.className)throw new Error("The provided className has already been registered")}),t.constructor.prototype.hasOwnProperty(C))throw new Error("MDL component classes must not have "+C+" defined as a property.");var a=e(t.classAsString,n);a||c.push(n)}function r(t,s){var i=e(t);i&&i.callbacks.push(s)}function _(){for(var e=0;e0&&this.container_.classList.contains(this.CssClasses_.IS_VISIBLE)&&(e.keyCode===this.Keycodes_.UP_ARROW?(e.preventDefault(),t[t.length-1].focus()):e.keyCode===this.Keycodes_.DOWN_ARROW&&(e.preventDefault(),t[0].focus()))}},d.prototype.handleItemKeyboardEvent_=function(e){if(this.element_&&this.container_){var t=this.element_.querySelectorAll("."+this.CssClasses_.ITEM+":not([disabled])");if(t&&t.length>0&&this.container_.classList.contains(this.CssClasses_.IS_VISIBLE)){var s=Array.prototype.slice.call(t).indexOf(e.target);if(e.keyCode===this.Keycodes_.UP_ARROW)e.preventDefault(),s>0?t[s-1].focus():t[t.length-1].focus();else if(e.keyCode===this.Keycodes_.DOWN_ARROW)e.preventDefault(),t.length>s+1?t[s+1].focus():t[0].focus();else if(e.keyCode===this.Keycodes_.SPACE||e.keyCode===this.Keycodes_.ENTER){e.preventDefault();var i=new MouseEvent("mousedown");e.target.dispatchEvent(i),i=new MouseEvent("mouseup"),e.target.dispatchEvent(i),e.target.click()}else e.keyCode===this.Keycodes_.ESCAPE&&(e.preventDefault(),this.hide())}}},d.prototype.handleItemClick_=function(e){e.target.hasAttribute("disabled")?e.stopPropagation():(this.closing_=!0,window.setTimeout(function(e){this.hide(),this.closing_=!1}.bind(this),this.Constant_.CLOSE_TIMEOUT))},d.prototype.applyClip_=function(e,t){this.element_.classList.contains(this.CssClasses_.UNALIGNED)?this.element_.style.clip="":this.element_.classList.contains(this.CssClasses_.BOTTOM_RIGHT)?this.element_.style.clip="rect(0 "+t+"px 0 "+t+"px)":this.element_.classList.contains(this.CssClasses_.TOP_LEFT)?this.element_.style.clip="rect("+e+"px 0 "+e+"px 0)":this.element_.classList.contains(this.CssClasses_.TOP_RIGHT)?this.element_.style.clip="rect("+e+"px "+t+"px "+e+"px "+t+"px)":this.element_.style.clip=""},d.prototype.removeAnimationEndListener_=function(e){e.target.classList.remove(d.prototype.CssClasses_.IS_ANIMATING)},d.prototype.addAnimationEndListener_=function(){this.element_.addEventListener("transitionend",this.removeAnimationEndListener_),this.element_.addEventListener("webkitTransitionEnd",this.removeAnimationEndListener_)},d.prototype.show=function(e){if(this.element_&&this.container_&&this.outline_){var t=this.element_.getBoundingClientRect().height,s=this.element_.getBoundingClientRect().width;this.container_.style.width=s+"px",this.container_.style.height=t+"px",this.outline_.style.width=s+"px",this.outline_.style.height=t+"px";for(var i=this.Constant_.TRANSITION_DURATION_SECONDS*this.Constant_.TRANSITION_DURATION_FRACTION,n=this.element_.querySelectorAll("."+this.CssClasses_.ITEM),a=0;a0&&this.showSnackbar(this.queuedNotifications_.shift())},C.prototype.cleanup_=function(){this.element_.classList.remove(this.cssClasses_.ACTIVE),setTimeout(function(){this.element_.setAttribute("aria-hidden","true"),this.textElement_.textContent="",Boolean(this.actionElement_.getAttribute("aria-hidden"))||(this.setActionHidden_(!0),this.actionElement_.textContent="",this.actionElement_.removeEventListener("click",this.actionHandler_)),this.actionHandler_=void 0,this.message_=void 0,this.actionText_=void 0,this.active=!1,this.checkQueue_()}.bind(this),this.Constant_.ANIMATION_LENGTH)},C.prototype.setActionHidden_=function(e){e?this.actionElement_.setAttribute("aria-hidden","true"):this.actionElement_.removeAttribute("aria-hidden")},s.register({constructor:C,classAsString:"MaterialSnackbar",cssClass:"mdl-js-snackbar",widget:!0});var u=function(e){this.element_=e,this.init()};window.MaterialSpinner=u,u.prototype.Constant_={MDL_SPINNER_LAYER_COUNT:4},u.prototype.CssClasses_={MDL_SPINNER_LAYER:"mdl-spinner__layer",MDL_SPINNER_CIRCLE_CLIPPER:"mdl-spinner__circle-clipper",MDL_SPINNER_CIRCLE:"mdl-spinner__circle",MDL_SPINNER_GAP_PATCH:"mdl-spinner__gap-patch",MDL_SPINNER_LEFT:"mdl-spinner__left",MDL_SPINNER_RIGHT:"mdl-spinner__right"},u.prototype.createLayer=function(e){var t=document.createElement("div");t.classList.add(this.CssClasses_.MDL_SPINNER_LAYER),t.classList.add(this.CssClasses_.MDL_SPINNER_LAYER+"-"+e);var s=document.createElement("div");s.classList.add(this.CssClasses_.MDL_SPINNER_CIRCLE_CLIPPER),s.classList.add(this.CssClasses_.MDL_SPINNER_LEFT);var i=document.createElement("div");i.classList.add(this.CssClasses_.MDL_SPINNER_GAP_PATCH);var n=document.createElement("div");n.classList.add(this.CssClasses_.MDL_SPINNER_CIRCLE_CLIPPER),n.classList.add(this.CssClasses_.MDL_SPINNER_RIGHT);for(var a=[s,i,n],l=0;l=this.maxRows&&e.preventDefault()},L.prototype.onFocus_=function(e){this.element_.classList.add(this.CssClasses_.IS_FOCUSED)},L.prototype.onBlur_=function(e){this.element_.classList.remove(this.CssClasses_.IS_FOCUSED)},L.prototype.onReset_=function(e){this.updateClasses_()},L.prototype.updateClasses_=function(){this.checkDisabled(),this.checkValidity(),this.checkDirty(),this.checkFocus()},L.prototype.checkDisabled=function(){this.input_.disabled?this.element_.classList.add(this.CssClasses_.IS_DISABLED):this.element_.classList.remove(this.CssClasses_.IS_DISABLED)},L.prototype.checkDisabled=L.prototype.checkDisabled,L.prototype.checkFocus=function(){Boolean(this.element_.querySelector(":focus"))?this.element_.classList.add(this.CssClasses_.IS_FOCUSED):this.element_.classList.remove(this.CssClasses_.IS_FOCUSED)},L.prototype.checkFocus=L.prototype.checkFocus,L.prototype.checkValidity=function(){this.input_.validity&&(this.input_.validity.valid?this.element_.classList.remove(this.CssClasses_.IS_INVALID):this.element_.classList.add(this.CssClasses_.IS_INVALID))},L.prototype.checkValidity=L.prototype.checkValidity,L.prototype.checkDirty=function(){this.input_.value&&this.input_.value.length>0?this.element_.classList.add(this.CssClasses_.IS_DIRTY):this.element_.classList.remove(this.CssClasses_.IS_DIRTY)},L.prototype.checkDirty=L.prototype.checkDirty,L.prototype.disable=function(){this.input_.disabled=!0,this.updateClasses_()},L.prototype.disable=L.prototype.disable,L.prototype.enable=function(){this.input_.disabled=!1,this.updateClasses_()},L.prototype.enable=L.prototype.enable,L.prototype.change=function(e){this.input_.value=e||"",this.updateClasses_()},L.prototype.change=L.prototype.change,L.prototype.init=function(){if(this.element_&&(this.label_=this.element_.querySelector("."+this.CssClasses_.LABEL),this.input_=this.element_.querySelector("."+this.CssClasses_.INPUT),this.input_)){this.input_.hasAttribute(this.Constant_.MAX_ROWS_ATTRIBUTE)&&(this.maxRows=parseInt(this.input_.getAttribute(this.Constant_.MAX_ROWS_ATTRIBUTE),10),isNaN(this.maxRows)&&(this.maxRows=this.Constant_.NO_MAX_ROWS)),this.input_.hasAttribute("placeholder")&&this.element_.classList.add(this.CssClasses_.HAS_PLACEHOLDER),this.boundUpdateClassesHandler=this.updateClasses_.bind(this),this.boundFocusHandler=this.onFocus_.bind(this),this.boundBlurHandler=this.onBlur_.bind(this),this.boundResetHandler=this.onReset_.bind(this),this.input_.addEventListener("input",this.boundUpdateClassesHandler),this.input_.addEventListener("focus",this.boundFocusHandler),this.input_.addEventListener("blur",this.boundBlurHandler),this.input_.addEventListener("reset",this.boundResetHandler),this.maxRows!==this.Constant_.NO_MAX_ROWS&&(this.boundKeyDownHandler=this.onKeyDown_.bind(this),this.input_.addEventListener("keydown",this.boundKeyDownHandler));var e=this.element_.classList.contains(this.CssClasses_.IS_INVALID);this.updateClasses_(),this.element_.classList.add(this.CssClasses_.IS_UPGRADED),e&&this.element_.classList.add(this.CssClasses_.IS_INVALID),this.input_.hasAttribute("autofocus")&&(this.element_.focus(),this.checkFocus())}},s.register({constructor:L,classAsString:"MaterialTextfield",cssClass:"mdl-js-textfield",widget:!0});var I=function(e){this.element_=e,this.init()};window.MaterialTooltip=I,I.prototype.Constant_={},I.prototype.CssClasses_={IS_ACTIVE:"is-active",BOTTOM:"mdl-tooltip--bottom",LEFT:"mdl-tooltip--left",RIGHT:"mdl-tooltip--right",TOP:"mdl-tooltip--top"},I.prototype.handleMouseEnter_=function(e){var t=e.target.getBoundingClientRect(),s=t.left+t.width/2,i=t.top+t.height/2,n=-1*(this.element_.offsetWidth/2),a=-1*(this.element_.offsetHeight/2);this.element_.classList.contains(this.CssClasses_.LEFT)||this.element_.classList.contains(this.CssClasses_.RIGHT)?(s=t.width/2,i+a<0?(this.element_.style.top="0",this.element_.style.marginTop="0"):(this.element_.style.top=i+"px",this.element_.style.marginTop=a+"px")):s+n<0?(this.element_.style.left="0",this.element_.style.marginLeft="0"):(this.element_.style.left=s+"px",this.element_.style.marginLeft=n+"px"),this.element_.classList.contains(this.CssClasses_.TOP)?this.element_.style.top=t.top-this.element_.offsetHeight-10+"px":this.element_.classList.contains(this.CssClasses_.RIGHT)?this.element_.style.left=t.left+t.width+10+"px":this.element_.classList.contains(this.CssClasses_.LEFT)?this.element_.style.left=t.left-this.element_.offsetWidth-10+"px":this.element_.style.top=t.top+t.height+10+"px",this.element_.classList.add(this.CssClasses_.IS_ACTIVE)},I.prototype.hideTooltip_=function(){this.element_.classList.remove(this.CssClasses_.IS_ACTIVE)},I.prototype.init=function(){if(this.element_){var e=this.element_.getAttribute("for")||this.element_.getAttribute("data-mdl-for");e&&(this.forElement_=document.getElementById(e)),this.forElement_&&(this.forElement_.hasAttribute("tabindex")||this.forElement_.setAttribute("tabindex","0"),this.boundMouseEnterHandler=this.handleMouseEnter_.bind(this),this.boundMouseLeaveAndScrollHandler=this.hideTooltip_.bind(this),this.forElement_.addEventListener("mouseenter",this.boundMouseEnterHandler,!1),this.forElement_.addEventListener("touchend",this.boundMouseEnterHandler,!1),this.forElement_.addEventListener("mouseleave",this.boundMouseLeaveAndScrollHandler,!1),window.addEventListener("scroll",this.boundMouseLeaveAndScrollHandler,!0),window.addEventListener("touchstart",this.boundMouseLeaveAndScrollHandler))}},s.register({constructor:I,classAsString:"MaterialTooltip",cssClass:"mdl-tooltip"});var f=function(e){this.element_=e,this.init()};window.MaterialLayout=f,f.prototype.Constant_={MAX_WIDTH:"(max-width: 1024px)",TAB_SCROLL_PIXELS:100,RESIZE_TIMEOUT:100,MENU_ICON:"",CHEVRON_LEFT:"chevron_left",CHEVRON_RIGHT:"chevron_right"},f.prototype.Keycodes_={ENTER:13,ESCAPE:27,SPACE:32},f.prototype.Mode_={STANDARD:0,SEAMED:1,WATERFALL:2,SCROLL:3},f.prototype.CssClasses_={CONTAINER:"mdl-layout__container",HEADER:"mdl-layout__header",DRAWER:"mdl-layout__drawer",CONTENT:"mdl-layout__content",DRAWER_BTN:"mdl-layout__drawer-button",ICON:"material-icons",JS_RIPPLE_EFFECT:"mdl-js-ripple-effect",RIPPLE_CONTAINER:"mdl-layout__tab-ripple-container",RIPPLE:"mdl-ripple",RIPPLE_IGNORE_EVENTS:"mdl-js-ripple-effect--ignore-events",HEADER_SEAMED:"mdl-layout__header--seamed",HEADER_WATERFALL:"mdl-layout__header--waterfall",HEADER_SCROLL:"mdl-layout__header--scroll",FIXED_HEADER:"mdl-layout--fixed-header",OBFUSCATOR:"mdl-layout__obfuscator",TAB_BAR:"mdl-layout__tab-bar",TAB_CONTAINER:"mdl-layout__tab-bar-container",TAB:"mdl-layout__tab",TAB_BAR_BUTTON:"mdl-layout__tab-bar-button",TAB_BAR_LEFT_BUTTON:"mdl-layout__tab-bar-left-button",TAB_BAR_RIGHT_BUTTON:"mdl-layout__tab-bar-right-button",TAB_MANUAL_SWITCH:"mdl-layout__tab-manual-switch",PANEL:"mdl-layout__tab-panel",HAS_DRAWER:"has-drawer",HAS_TABS:"has-tabs",HAS_SCROLLING_HEADER:"has-scrolling-header",CASTING_SHADOW:"is-casting-shadow",IS_COMPACT:"is-compact",IS_SMALL_SCREEN:"is-small-screen",IS_DRAWER_OPEN:"is-visible",IS_ACTIVE:"is-active",IS_UPGRADED:"is-upgraded",IS_ANIMATING:"is-animating",ON_LARGE_SCREEN:"mdl-layout--large-screen-only",ON_SMALL_SCREEN:"mdl-layout--small-screen-only"},f.prototype.contentScrollHandler_=function(){if(!this.header_.classList.contains(this.CssClasses_.IS_ANIMATING)){var e=!this.element_.classList.contains(this.CssClasses_.IS_SMALL_SCREEN)||this.element_.classList.contains(this.CssClasses_.FIXED_HEADER);this.content_.scrollTop>0&&!this.header_.classList.contains(this.CssClasses_.IS_COMPACT)?(this.header_.classList.add(this.CssClasses_.CASTING_SHADOW),this.header_.classList.add(this.CssClasses_.IS_COMPACT),e&&this.header_.classList.add(this.CssClasses_.IS_ANIMATING)):this.content_.scrollTop<=0&&this.header_.classList.contains(this.CssClasses_.IS_COMPACT)&&(this.header_.classList.remove(this.CssClasses_.CASTING_SHADOW),this.header_.classList.remove(this.CssClasses_.IS_COMPACT),e&&this.header_.classList.add(this.CssClasses_.IS_ANIMATING))}},f.prototype.keyboardEventHandler_=function(e){e.keyCode===this.Keycodes_.ESCAPE&&this.drawer_.classList.contains(this.CssClasses_.IS_DRAWER_OPEN)&&this.toggleDrawer()},f.prototype.screenSizeHandler_=function(){this.screenSizeMediaQuery_.matches?this.element_.classList.add(this.CssClasses_.IS_SMALL_SCREEN):(this.element_.classList.remove(this.CssClasses_.IS_SMALL_SCREEN),this.drawer_&&(this.drawer_.classList.remove(this.CssClasses_.IS_DRAWER_OPEN),this.obfuscator_.classList.remove(this.CssClasses_.IS_DRAWER_OPEN)))},f.prototype.drawerToggleHandler_=function(e){if(e&&"keydown"===e.type){if(e.keyCode!==this.Keycodes_.SPACE&&e.keyCode!==this.Keycodes_.ENTER)return;e.preventDefault()}this.toggleDrawer()},f.prototype.headerTransitionEndHandler_=function(){this.header_.classList.remove(this.CssClasses_.IS_ANIMATING)},f.prototype.headerClickHandler_=function(){this.header_.classList.contains(this.CssClasses_.IS_COMPACT)&&(this.header_.classList.remove(this.CssClasses_.IS_COMPACT),this.header_.classList.add(this.CssClasses_.IS_ANIMATING))},f.prototype.resetTabState_=function(e){for(var t=0;t0?c.classList.add(this.CssClasses_.IS_ACTIVE):c.classList.remove(this.CssClasses_.IS_ACTIVE),this.tabBar_.scrollLeft0)return;this.setFrameCount(1);var i,n,a=e.currentTarget.getBoundingClientRect();if(0===e.clientX&&0===e.clientY)i=Math.round(a.width/2),n=Math.round(a.height/2);else{var l=void 0!==e.clientX?e.clientX:e.touches[0].clientX,o=void 0!==e.clientY?e.clientY:e.touches[0].clientY;i=Math.round(l-a.left),n=Math.round(o-a.top)}this.setRippleXY(i,n),this.setRippleStyles(!0),window.requestAnimationFrame(this.animFrameHandler.bind(this))}},S.prototype.upHandler_=function(e){e&&2!==e.detail&&window.setTimeout(function(){this.rippleElement_.classList.remove(this.CssClasses_.IS_VISIBLE)}.bind(this),0)},S.prototype.init=function(){if(this.element_){var e=this.element_.classList.contains(this.CssClasses_.RIPPLE_CENTER);this.element_.classList.contains(this.CssClasses_.RIPPLE_EFFECT_IGNORE_EVENTS)||(this.rippleElement_=this.element_.querySelector("."+this.CssClasses_.RIPPLE),this.frameCount_=0,this.rippleSize_=0,this.x_=0,this.y_=0,this.ignoringMouseDown_=!1,this.boundDownHandler=this.downHandler_.bind(this),this.element_.addEventListener("mousedown",this.boundDownHandler),this.element_.addEventListener("touchstart",this.boundDownHandler),this.boundUpHandler=this.upHandler_.bind(this),this.element_.addEventListener("mouseup",this.boundUpHandler),this.element_.addEventListener("mouseleave",this.boundUpHandler),this.element_.addEventListener("touchend",this.boundUpHandler),this.element_.addEventListener("blur",this.boundUpHandler),this.getFrameCount=function(){return this.frameCount_},this.setFrameCount=function(e){this.frameCount_=e},this.getRippleElement=function(){return this.rippleElement_},this.setRippleXY=function(e,t){this.x_=e,this.y_=t},this.setRippleStyles=function(t){if(null!==this.rippleElement_){var s,i,n,a="translate("+this.x_+"px, "+this.y_+"px)";t?(i=this.Constant_.INITIAL_SCALE,n=this.Constant_.INITIAL_SIZE):(i=this.Constant_.FINAL_SCALE,n=this.rippleSize_+"px",e&&(a="translate("+this.boundWidth/2+"px, "+this.boundHeight/2+"px)")),s="translate(-50%, -50%) "+a+i,this.rippleElement_.style.webkitTransform=s,this.rippleElement_.style.msTransform=s,this.rippleElement_.style.transform=s,t?this.rippleElement_.classList.remove(this.CssClasses_.IS_ANIMATING):this.rippleElement_.classList.add(this.CssClasses_.IS_ANIMATING)}},this.animFrameHandler=function(){this.frameCount_-- >0?window.requestAnimationFrame(this.animFrameHandler.bind(this)):this.setRippleStyles(!1)})}},s.register({constructor:S,classAsString:"MaterialRipple",cssClass:"mdl-js-ripple-effect",widget:!1})}(); +//# sourceMappingURL=material.min.js.map diff --git a/public/js/promise.js b/public/js/promise.js new file mode 100755 index 00000000..b90788a6 --- /dev/null +++ b/public/js/promise.js @@ -0,0 +1,368 @@ +/** + * setImmediate polyfill v1.0.1, supports IE9+ + * © 2014–2015 Dmitry Korobkin + * Released under the MIT license + * github.com/Octane/setImmediate + */ +window.setImmediate || (function () { + let uid = 0; + const storage = {}; + let firstCall = true; + const { slice } = Array.prototype; + const message = 'setImmediatePolyfillMessage'; + + function fastApply(args) { + const func = args[0]; + switch (args.length) { + case 1: + return func(); + case 2: + return func(args[1]); + case 3: + return func(args[1], args[2]); + } + return func.apply(window, slice.call(args, 1)); + } + + function callback(event) { + const key = event.data; + let data; + if (typeof key === 'string' && key.indexOf(message) == 0) { + data = storage[key]; + if (data) { + delete storage[key]; + fastApply(data); + } + } + } + + window.setImmediate = function setImmediate() { + const id = uid++; + const key = message + id; + let i = arguments.length; + const args = new Array(i); + while (i--) { + args[i] = arguments[i]; + } + storage[key] = args; + if (firstCall) { + firstCall = false; + window.addEventListener('message', callback); + } + window.postMessage(key, '*'); + return id; + }; + + window.clearImmediate = function clearImmediate(id) { + delete storage[message + id]; + }; +}()); + +/** + * Promise polyfill v1.0.10 + * requires setImmediate + * + * © 2014–2015 Dmitry Korobkin + * Released under the MIT license + * github.com/Octane/Promise + */ +(function (global) { + const STATUS = '[[PromiseStatus]]'; + const VALUE = '[[PromiseValue]]'; + const ON_FUlFILLED = '[[OnFulfilled]]'; + const ON_REJECTED = '[[OnRejected]]'; + const ORIGINAL_ERROR = '[[OriginalError]]'; + const PENDING = 'pending'; + const INTERNAL_PENDING = 'internal pending'; + const FULFILLED = 'fulfilled'; + const REJECTED = 'rejected'; + const NOT_ARRAY = 'not an array.'; + const REQUIRES_NEW = 'constructor Promise requires "new".'; + const CHAINING_CYCLE = 'then() cannot return same Promise that it resolves.'; + + const setImmediate = global.setImmediate || require('timers').setImmediate; + const isArray = Array.isArray || function (anything) { + return Object.prototype.toString.call(anything) == '[object Array]'; + }; + + function InternalError(originalError) { + this[ORIGINAL_ERROR] = originalError; + } + + function isInternalError(anything) { + return anything instanceof InternalError; + } + + function isObject(anything) { + // Object.create(null) instanceof Object → false + return Object(anything) === anything; + } + + function isCallable(anything) { + return typeof anything === 'function'; + } + + function isPromise(anything) { + return anything instanceof Promise; + } + + function identity(value) { + return value; + } + + function thrower(reason) { + throw reason; + } + + function enqueue(promise, onFulfilled, onRejected) { + if (!promise[ON_FUlFILLED]) { + promise[ON_FUlFILLED] = []; + promise[ON_REJECTED] = []; + } + promise[ON_FUlFILLED].push(onFulfilled); + promise[ON_REJECTED].push(onRejected); + } + + function clearAllQueues(promise) { + delete promise[ON_FUlFILLED]; + delete promise[ON_REJECTED]; + } + + function callEach(queue) { + let i; + const { length } = queue; + for (i = 0; i < length; i++) { + queue[i](); + } + } + + function call(resolve, reject, value) { + const anything = toPromise(value); + if (isPromise(anything)) { + anything.then(resolve, reject); + } else if (isInternalError(anything)) { + reject(anything[ORIGINAL_ERROR]); + } else { + resolve(value); + } + } + + function toPromise(anything) { + let then; + if (isPromise(anything)) { + return anything; + } + if (isObject(anything)) { + try { + then = anything.then; + } catch (error) { + return new InternalError(error); + } + if (isCallable(then)) { + return new Promise((resolve, reject) => { + setImmediate(() => { + try { + then.call(anything, resolve, reject); + } catch (error) { + reject(error); + } + }); + }); + } + } + return null; + } + + function resolvePromise(promise, resolver) { + function resolve(value) { + if (promise[STATUS] == PENDING) { + fulfillPromise(promise, value); + } + } + function reject(reason) { + if (promise[STATUS] == PENDING) { + rejectPromise(promise, reason); + } + } + try { + resolver(resolve, reject); + } catch (error) { + reject(error); + } + } + + function fulfillPromise(promise, value) { + let queue; + const anything = toPromise(value); + if (isPromise(anything)) { + promise[STATUS] = INTERNAL_PENDING; + anything.then( + (value) => { + fulfillPromise(promise, value); + }, + (reason) => { + rejectPromise(promise, reason); + }, + ); + } else if (isInternalError(anything)) { + rejectPromise(promise, anything[ORIGINAL_ERROR]); + } else { + promise[STATUS] = FULFILLED; + promise[VALUE] = value; + queue = promise[ON_FUlFILLED]; + if (queue && queue.length) { + clearAllQueues(promise); + callEach(queue); + } + } + } + + function rejectPromise(promise, reason) { + const queue = promise[ON_REJECTED]; + promise[STATUS] = REJECTED; + promise[VALUE] = reason; + if (queue && queue.length) { + clearAllQueues(promise); + callEach(queue); + } + } + + function Promise(resolver) { + const promise = this; + if (!isPromise(promise)) { + throw new TypeError(REQUIRES_NEW); + } + promise[STATUS] = PENDING; + promise[VALUE] = undefined; + resolvePromise(promise, resolver); + } + + Promise.prototype.then = function (onFulfilled, onRejected) { + const promise = this; + let nextPromise; + onFulfilled = isCallable(onFulfilled) ? onFulfilled : identity; + onRejected = isCallable(onRejected) ? onRejected : thrower; + nextPromise = new Promise((resolve, reject) => { + function tryCall(func) { + let value; + try { + value = func(promise[VALUE]); + } catch (error) { + reject(error); + return; + } + if (value === nextPromise) { + reject(new TypeError(CHAINING_CYCLE)); + } else { + call(resolve, reject, value); + } + } + function asyncOnFulfilled() { + setImmediate(tryCall, onFulfilled); + } + function asyncOnRejected() { + setImmediate(tryCall, onRejected); + } + switch (promise[STATUS]) { + case FULFILLED: + asyncOnFulfilled(); + break; + case REJECTED: + asyncOnRejected(); + break; + default: + enqueue(promise, asyncOnFulfilled, asyncOnRejected); + } + }); + return nextPromise; + }; + + Promise.prototype.catch = function (onRejected) { + return this.then(identity, onRejected); + }; + + Promise.resolve = function (value) { + const anything = toPromise(value); + if (isPromise(anything)) { + return anything; + } + return new Promise((resolve, reject) => { + if (isInternalError(anything)) { + reject(anything[ORIGINAL_ERROR]); + } else { + resolve(value); + } + }); + }; + + Promise.reject = function (reason) { + return new Promise((resolve, reject) => { + reject(reason); + }); + }; + + Promise.race = function (values) { + return new Promise((resolve, reject) => { + let i; + let length; + if (isArray(values)) { + length = values.length; + for (i = 0; i < length; i++) { + call(resolve, reject, values[i]); + } + } else { + reject(new TypeError(NOT_ARRAY)); + } + }); + }; + + Promise.all = function (values) { + return new Promise((resolve, reject) => { + let fulfilledCount = 0; + let promiseCount = 0; + let anything; + let length; + let value; + let i; + if (isArray(values)) { + values = values.slice(0); + length = values.length; + for (i = 0; i < length; i++) { + value = values[i]; + anything = toPromise(value); + if (isPromise(anything)) { + promiseCount++; + anything.then( + (function (index) { + return function (value) { + values[index] = value; + fulfilledCount++; + if (fulfilledCount == promiseCount) { + resolve(values); + } + }; + }(i)), + reject, + ); + } else if (isInternalError(anything)) { + reject(anything[ORIGINAL_ERROR]); + } else { + // [1, , 3] → [1, undefined, 3] + values[i] = value; + } + } + if (!promiseCount) { + resolve(values); + } + } else { + reject(new TypeError(NOT_ARRAY)); + } + }); + }; + + if (typeof module !== 'undefined' && module.exports) { + module.exports = global.Promise || Promise; + } else if (!global.Promise) { + global.Promise = Promise; + } +}(this)); diff --git a/public/js/storage.js b/public/js/storage.js new file mode 100755 index 00000000..1900f2d5 --- /dev/null +++ b/public/js/storage.js @@ -0,0 +1,156 @@ +const OtherTables = ['categories', 'config', 'swmsg', 'notifications'] +const MainTables = ['todos', 'projects'] +const allMethod = ['sync_post_', 'sync_patch_', 'delete_'] + +// ------------------------------------- + +let idbKeyval = (() => { + let db; + + // console.log('idbKeyval...') + + function getDB() { + if (!db) { + // console.log('CREO DB STORAGE JS !') + db = new Promise((resolve, reject) => { + const openreq = indexedDB.open('mydb3', 13); + + openreq.onerror = () => { + reject(openreq.error); + }; + + openreq.onupgradeneeded = () => { + // First time setup: create an empty object store + for (const mytab of MainTables) { + openreq.result.createObjectStore(mytab, { keyPath: '_id' }); + for (const mymeth of allMethod) { + const tab = mymeth + mytab + openreq.result.createObjectStore(tab, { keyPath: '_id' }); + } + } + for (const mytab of OtherTables) { + openreq.result.createObjectStore(mytab, { keyPath: '_id' }); + } + }; + + openreq.onsuccess = () => { + resolve(openreq.result); + }; + }); + } + return db; + } + + async function withStore(type, table, callback) { + const db = await getDB(); + return new Promise((resolve, reject) => { + const transaction = db.transaction(table, type); + transaction.oncomplete = () => resolve(); + transaction.onerror = () => reject(transaction.error); + callback(transaction.objectStore(table)); + }); + } + + return { + getArrayByTable(nametable, data) { + if (nametable === 'todos') { + return data.todos + } if (nametable === 'projects') { + return data.projects + } + }, + + async get(key) { + let req; + await withStore('readonly', 'keyval', store => { + req = store.get(key); + }); + return req.result; + }, + + // jsonCopy(src) { + // return JSON.parse(JSON.stringify(src)); + // }, + + // contains(a, b) { + // // array matches + // if (Array.isArray(b)) { + // return b.some(x => a.indexOf(x) > -1); + // } + // // string match + // return a.indexOf(b) > -1; + // }, + + async getdata(table, key) { + let req; + + console.log('getdata', table, key) + + await withStore('readonly', table, store => { + // console.log('store', store, 'key', key) + req = store.get(key); + // console.log(' req', req) + }); + + if (req) { + return req.result; + } else { + return null; + } + }, + async getalldata(table) { + let req; + await withStore('readonly', table, store => { + req = store.getAll(); + }); + return req.result; + }, + set(key, value) { + let req; + /*await withStore('readwrite', 'keyval', store => { + req = store.put(value, key); + }); + + */ + if (req) + return req.result; + else + return null + }, + async setdata(table, value) { + let req; + // console.log('setdata', table, value) + + await withStore('readwrite', table, store => { + req = store.put(value); + }); + return req.result; + }, + async delete(key) { + return withStore('readwrite', 'keyval', store => { + store.delete(key); + }); + }, + async deletedata(table, key) { + return withStore('readwrite', table, store => { + store.delete(key); + }); + }, + async clearalldata(table) { + // console.log('clearalldata', table) + return withStore('readwrite', table, store => { + store.clear(); + }); + }, + }; +})(); + +// iOS add-to-homescreen is missing IDB, or at least it used to. +// I haven't tested this in a while. +if (!self.indexedDB) { + idbKeyval = { + get: key => Promise.resolve(localStorage.getItem(key)), + set: (key, val) => Promise.resolve(localStorage.setItem(key, val)), + delete: key => Promise.resolve(localStorage.removeItem(key)), + }; +} diff --git a/public/js/track.js b/public/js/track.js new file mode 100755 index 00000000..da706b55 --- /dev/null +++ b/public/js/track.js @@ -0,0 +1,34 @@ +function geturl() { + const miaurl = document.location.href + + if (miaurl.includes('localhost')) { + return 'https://127.0.0.1:8084' + } + return '' +} + +function getidtrack() { + const miaurl = document.location.href + + if (miaurl.includes('test.') || miaurl.includes('localhost')) { + return '4c40a07bc88a9c50c9b70dc9c5cd8e2e' + } + return 'ccfd6c90e17b6809f9717675764c3f5d' // Associazione Shen +} + +let owa_baseUrl = `${geturl()}owa/`; +if (owa_cmds) var owa_cmds = []; +else var owa_cmds = owa_cmds || []; +owa_cmds.push(['setSiteId', getidtrack()]); +owa_cmds.push(['trackPageView']); +// owa_cmds.push(['trackClicks']); + +(function () { + const _owa = document.createElement('script'); + _owa.type = 'text/javascript'; + _owa.async = true; + owa_baseUrl = (document.location.protocol == 'https:' ? window.owa_baseSecUrl || owa_baseUrl.replace(/http:/, 'https:') : owa_baseUrl); + _owa.src = `${owa_baseUrl}modules/base/js/owa.tracker-combined-min.js`; + const _owa_s = document.getElementsByTagName('script')[0]; + _owa_s.parentNode.insertBefore(_owa, _owa_s); +}()); diff --git a/public/myicons/favicon-16x16.png b/public/myicons/favicon-16x16.png new file mode 100644 index 00000000..c28cef9f Binary files /dev/null and b/public/myicons/favicon-16x16.png differ diff --git a/public/myicons/favicon-32x32.png b/public/myicons/favicon-32x32.png new file mode 100644 index 00000000..a02e38b0 Binary files /dev/null and b/public/myicons/favicon-32x32.png differ diff --git a/public/myicons/favicon-96x96.png b/public/myicons/favicon-96x96.png new file mode 100644 index 00000000..f741b210 Binary files /dev/null and b/public/myicons/favicon-96x96.png differ diff --git a/public/workbox/workbox-sw.js b/public/workbox/workbox-sw.js new file mode 100644 index 00000000..1b972a40 --- /dev/null +++ b/public/workbox/workbox-sw.js @@ -0,0 +1,2 @@ +!function(){"use strict";try{self["workbox:sw:7.3.0"]&&_()}catch(t){}const t={backgroundSync:"background-sync",broadcastUpdate:"broadcast-update",cacheableResponse:"cacheable-response",core:"core",expiration:"expiration",googleAnalytics:"offline-ga",navigationPreload:"navigation-preload",precaching:"precaching",rangeRequests:"range-requests",routing:"routing",strategies:"strategies",streams:"streams",recipes:"recipes"};self.workbox=new class{constructor(){return this.v={},this.Pt={debug:"localhost"===self.location.hostname,modulePathPrefix:null,modulePathCb:null},this.$t=this.Pt.debug?"dev":"prod",this.jt=!1,new Proxy(this,{get(e,s){if(e[s])return e[s];const o=t[s];return o&&e.loadModule(`workbox-${o}`),e[s]}})}setConfig(t={}){if(this.jt)throw new Error("Config must be set before accessing workbox.* modules");Object.assign(this.Pt,t),this.$t=this.Pt.debug?"dev":"prod"}loadModule(t){const e=this.St(t);try{importScripts(e),this.jt=!0}catch(s){throw console.error(`Unable to import module '${t}' from '${e}'.`),s}}St(t){if(this.Pt.modulePathCb)return this.Pt.modulePathCb(t,this.Pt.debug);let e=["https://storage.googleapis.com/workbox-cdn/releases/7.3.0"];const s=`${t}.${this.$t}.js`,o=this.Pt.modulePathPrefix;return o&&(e=o.split("/"),""===e[e.length-1]&&e.splice(e.length-1,1)),e.push(s),e.join("/")}}}(); +//# sourceMappingURL=workbox-sw.js.map diff --git a/scripts/_ALL_SITES/comunitanuovomondo.app/package.json b/scripts/_ALL_SITES/comunitanuovomondo.app/package.json index 06a0a19b..a43a8cef 100755 --- a/scripts/_ALL_SITES/comunitanuovomondo.app/package.json +++ b/scripts/_ALL_SITES/comunitanuovomondo.app/package.json @@ -1,6 +1,6 @@ { "name": "cnm", - "version": "1.2.28", + "version": "1.2.29", "description": "Comunita Nuovo Mondo", "productName": "ComunitaNuovoMondo", "author": "Surya", @@ -9,7 +9,7 @@ "license": "MIT", "type": "module", "scripts": { - "dev": "PORT=8083:APP_VERSION='1.2.28' quasar dev", + "dev": "PORT=8083 APP_VERSION='1.2.29' quasar dev", "dev_noCheck": "SKIP_TSC=true quasar dev", "build": "quasar build", "buildpwa": "NODE_ENV=production quasar build -m pwa", @@ -21,18 +21,19 @@ "lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt", "lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt", "fix": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\" --ignore-pattern .gitignore ./ --fix > file.out.txt", - "pwa": "NODE_ENV=development:PORT=8093:APP_VERSION='1.2.28' quasar dev -m pwa", - "spa": "NODE_ENV=development:PORT=8083:APP_VERSION='1.2.28' quasar dev", + "pwa": "NODE_ENV=development PORT=8093 APP_VERSION='1.2.29' quasar dev -m pwa", + "spa": "NODE_ENV=development PORT=8083 APP_VERSION='1.2.29' quasar dev", "debug": "quasar dev --mode debug", "test": "echo \"No test specified\" && exit 0", "generate-sw": "workbox generateSW workbox-config.js", "postinstall": "quasar prepare" }, "dependencies": { - "@cubejs-client/core": "^1.2.19", + "@cubejs-client/core": "^1.2.26", "@quasar/extras": "^1.16.17", "@quasar/quasar-ui-qcalendar": "^4.1.2", - "@types/leaflet": "^1.9.16", + "@types/jsbarcode": "^3.11.4", + "@types/leaflet": "^1.9.17", "@vue/compat": "^3.5.13", "@vue/compiler-sfc": "^3.5.13", "@vuelidate/core": "^2.0.3", @@ -40,7 +41,7 @@ "acorn": "^8.14.1", "animate.css": "^4.1.1", "autoprefixer": "^10.4.21", - "axios": "^1.8.2", + "axios": "^1.8.4", "bcryptjs": "^3.0.2", "chart.js": "^4.4.8", "core-js": "^3.41.0", @@ -55,6 +56,7 @@ "html2pdf.js": "^0.10.3", "jquery": "^3.7.1", "js-cookie": "^3.0.5", + "jsbarcode": "^3.11.6", "leaflet": "^1.9.4", "leaflet-routing-machine": "^3.2.12", "leaflet.markercluster": "^1.5.3", @@ -68,7 +70,7 @@ "quasar-extras": "^2.0.9", "register-service-worker": "^1.7.2", "scrollreveal": "^4.0.9", - "typescript-eslint": "^8.26.0", + "typescript-eslint": "^8.27.0", "vee-validate": "^4.15.0", "vue": "^3.5.13", "vue-class-component": "^8.0.0-rc.1", @@ -95,14 +97,13 @@ "workbox-window": "^7.3.0" }, "devDependencies": { - "@eslint/js": "^9.22.0", - "@intlify/unplugin-vue-i18n": "^6.0.3", + "@eslint/js": "^9.23.0", + "@intlify/unplugin-vue-i18n": "^6.0.5", "@quasar/app-vite": "^2.1.4", - "@types/bcryptjs": "^2.4.6", "@types/google.maps": "^3.58.1", "@types/jest": "^29.5.14", "@types/js-cookie": "^3.0.6", - "@types/node": "^22.13.10", + "@types/node": "^22.13.11", "@types/nprogress": "^0.2.3", "@types/vue-tel-input": "^2.1.7", "@types/vuelidate": "^0.7.22", @@ -119,16 +120,17 @@ "jest": "^29.7.0", "json-loader": "^0.5.7", "nodemon": "^3.1.9", - "npm-check-updates": "^17.1.15", - "parcel": "^2.13.3", + "npm-check-updates": "^17.1.16", + "parcel": "^2.14.1", "postcss": "^8.5.3", "postcss-loader": "^8.1.1", "prettier": "3", "strip-ansi": "=7.1.0", "ts-jest": "^29.2.6", "typescript": "5.7.3", - "vite-plugin-checker": "^0.9.0", + "vite-plugin-checker": "^0.9.1", "vue-cli-plugin-element-ui": "^1.1.4", + "vue-eslint-parser": "^10.1.1", "vue-tsc": "^2.2.8", "vueify": "^9.4.1", "workbox-build": "^7.3.0" @@ -138,4 +140,4 @@ "npm": ">= 6.13.4", "yarn": ">= 1.21.1" } -} \ No newline at end of file +} diff --git a/scripts/_ALL_SITES/freeplanet.app/package.json b/scripts/_ALL_SITES/freeplanet.app/package.json index 23623197..a99397e9 100755 --- a/scripts/_ALL_SITES/freeplanet.app/package.json +++ b/scripts/_ALL_SITES/freeplanet.app/package.json @@ -1,162 +1,143 @@ { "name": "freeplanet", - "version": "0.0.8", - "description": "FreePlanet", - "productName": "FreePlanet", + "version": "1.2.29", + "description": "freeplanet", + "productName": "freeplanet", "author": "Surya", "private": true, - "keywords": [ - ], + "keywords": [], "license": "MIT", + "type": "module", "scripts": { - "dev": "quasar dev", - "build": "NODE_ENV=production quasar build", - "buildpwa": "NODE_ENV=production quasar build -m pwa", - "buildpwatest": "NODE_ENV=test quasar build -m pwa", - "buildspa": "NODE_ENV=production quasar build -m spa", - "lint": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./", + "dev": "PORT=8087 APP_VERSION='1.2.29' quasar dev", + "dev_noCheck": "SKIP_TSC=true quasar dev", + "build": "quasar build", + "buildpwa": "NODE_ENV=production APP_VERSION='1.2.29' quasar build -m pwa", + "buildpwatest": "NODE_ENV=production APP_VERSION='1.2.29' quasar build -m pwa", + "type-check": "vue-tsc --noEmit", + "type-check:watch": "vue-tsc --noEmit --watch", + "buildspa": "quasar build -m spa", + "lint": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\"", "lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt", "lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt", - "fix": "eslint --ext .ts,.vue --ignore-path .gitignore ./ --fix > file.out.txt", - "pwa": "NODE_ENV=development NODE_OPTIONS=--max_old_space_size=4096 DEBUG=v8:* quasar dev -m pwa", + "fix": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\" --ignore-pattern .gitignore ./ --fix > file.out.txt", + "pwa": "NODE_ENV=development PORT=8097 APP_VERSION='1.2.29' quasar dev -m pwa", + "spa": "NODE_ENV=development PORT=8087 APP_VERSION='1.2.29' quasar dev", + "debug": "quasar dev --mode debug", "test": "echo \"No test specified\" && exit 0", - "generate-sw": "workbox generateSW workbox-config.js" + "generate-sw": "workbox generateSW workbox-config.js", + "postinstall": "quasar prepare" }, "dependencies": { - "@babel/plugin-proposal-class-properties": "^7.18.6", - "@babel/plugin-proposal-export-namespace-from": "^7.18.9", - "@babel/plugin-proposal-json-strings": "^7.18.6", - "@babel/plugin-proposal-numeric-separator": "^7.18.6", - "@babel/runtime": "^7.25.7", - "@cubejs-client/core": "^0.36.4", - "@quasar/extras": "^1.16.12", - "@quasar/quasar-ui-qcalendar": "^4.0.0-beta.19", - "@types/leaflet": "^1.9.12", - "@vue/compat": "^3.5.10", - "@vue/compiler-sfc": "^3.5.10", - "@vue/eslint-config-standard": "^8.0.1", + "@cubejs-client/core": "^1.2.26", + "@quasar/extras": "^1.16.17", + "@quasar/quasar-ui-qcalendar": "^4.1.2", + "@types/jsbarcode": "^3.11.4", + "@types/leaflet": "^1.9.17", + "@vue/compat": "^3.5.13", + "@vue/compiler-sfc": "^3.5.13", "@vuelidate/core": "^2.0.3", "@vuelidate/validators": "^2.0.4", - "acorn": "^8.12.1", + "acorn": "^8.14.1", "animate.css": "^4.1.1", - "autoprefixer": "^10.4.20", - "axios": "^1.7.7", - "bcryptjs": "^2.4.3", - "chart.js": "^4.4.4", - "core-js": "^3.38.1", - "crypto-browserify": "^3.12.0", + "autoprefixer": "^10.4.21", + "axios": "^1.8.4", + "bcryptjs": "^3.0.2", + "chart.js": "^4.4.8", + "core-js": "^3.41.0", + "crypto-browserify": "^3.12.1", "date-fns": "^4.1.0", - "dotenv": "^16.4.5", - "echarts": "5.5.1", - "eslint-plugin-n": "^17.10.3", + "echarts": "5.6.0", + "eslint-plugin-n": "^17.16.2", "eslint-plugin-quasar": "^1.1.0", - "graphql": "^16.9.0", + "graphql": "^16.10.0", "graphql-tag": "^2.12.6", - "gsap": "^3.12.5", - "html2pdf.js": "^0.10.2", + "gsap": "^3.12.7", + "html2pdf.js": "^0.10.3", "jquery": "^3.7.1", "js-cookie": "^3.0.5", + "jsbarcode": "^3.11.6", "leaflet": "^1.9.4", "leaflet-routing-machine": "^3.2.12", "leaflet.markercluster": "^1.5.3", "localforage": "^1.10.0", "lodash": "^4.17.21", "normalize.css": "^8.0.1", - "npm": "^10.8.3", "nprogress": "^0.2.0", - "pinia": "^2.2.4", - "quasar": "^2.17.0", + "pinia": "^3.0.1", + "qrcode-vue3": "^1.7.1", + "quasar": "^2.18.1", "quasar-extras": "^2.0.9", "register-service-worker": "^1.7.2", - "typescript-eslint": "^8.8.0", - "vee-validate": "^4.13.2", - "vue": "^3.5.10", + "scrollreveal": "^4.0.9", + "typescript-eslint": "^8.27.0", + "vee-validate": "^4.15.0", + "vue": "^3.5.13", "vue-class-component": "^8.0.0-rc.1", "vue-country-code": "^1.1.3", "vue-echarts": "^7.0.3", - "vue-i18n": "^9.14.1", + "vue-i18n": "^11.1.2", "vue-idb": "^0.2.0", - "vue-image-zoomer": "^2.4.1", - "vue-loader": "^17.4.2", + "vue-image-zoomer": "^2.4.4", "vue-property-decorator": "^10.0.0-rc.3", - "vue-router": "^4.4.5", + "vue-router": "^4.5.0", "vue-scroll-reveal": "^2.1.0", "vue-social-sharing": "^4.0.0-alpha4", "vue-svgicon": "^4.0.0-alpha.3", "vue-timeago3": "^2.3.2", "vue2-dragula": "^2.5.5", "vue3-pdf-app": "^1.0.3", + "vue3-qr-reader": "^1.0.0", "vuex": "^4.1.0", - "vuex-router-sync": "^6.0.0-rc.1" + "vuex-router-sync": "^6.0.0-rc.1", + "workbox-core": "^7.3.0", + "workbox-precaching": "^7.3.0", + "workbox-routing": "^7.3.0", + "workbox-strategies": "^7.3.0", + "workbox-window": "^7.3.0" }, "devDependencies": { - "@babel/core": "^7.25.7", - "@babel/plugin-transform-class-properties": "^7.25.7", - "@babel/plugin-transform-export-namespace-from": "^7.25.7", - "@babel/plugin-transform-json-strings": "^7.25.7", - "@babel/plugin-transform-numeric-separator": "^7.25.7", - "@babel/plugin-transform-runtime": "^7.25.7", - "@quasar/app-webpack": "^3.14.0", - "@types/bcryptjs": "^2.4.6", - "@types/dotenv": "^8.2.0", + "@eslint/js": "^9.23.0", + "@intlify/unplugin-vue-i18n": "^6.0.5", + "@quasar/app-vite": "^2.1.4", "@types/google.maps": "^3.58.1", - "@types/jest": "^29.5.13", + "@types/jest": "^29.5.14", "@types/js-cookie": "^3.0.6", - "@types/node": "22.7.4", + "@types/node": "^22.13.11", "@types/nprogress": "^0.2.3", "@types/vue-tel-input": "^2.1.7", - "@types/vuelidate": "^0.7.21", - "@typescript-eslint/eslint-plugin": "^8.8.0", - "@typescript-eslint/parser": "^8.8.0", - "babel-loader": "^9.2.1", - "copy-webpack-plugin": "^12.0.2", - "eslint": "^9.11.1", - "eslint-config-prettier": "^9.1.0", + "@types/vuelidate": "^0.7.22", + "@vue/devtools": "^7.7.2", + "@vue/eslint-config-prettier": "^10.2.0", + "@vue/eslint-config-typescript": "^14.5.0", + "autoprefixer": "^10.4.21", + "eslint": "9", "eslint-plugin-import": "^2.31.0", - "eslint-plugin-node": "^11.1.0", - "eslint-plugin-promise": "^7.1.0", - "eslint-plugin-vue": "^9.28.0", + "eslint-plugin-vue": "^10.0.0", "file-loader": "^6.2.0", - "fork-ts-checker-webpack-plugin": "^9.0.2", - "friendly-errors-webpack-plugin": "^1.7.0", - "html-webpack-plugin": "^5.6.0", - "http-proxy-middleware": "^3.0.2", + "globals": "^16.0.0", + "http-proxy-middleware": "^3.0.3", "jest": "^29.7.0", "json-loader": "^0.5.7", - "node-sass": "^9.0.0", - "npm-check-updates": "^17.1.3", - "optimize-css-assets-webpack-plugin": "^6.0.1", - "parcel": "^2.12.0", - "postcss": "^8.4.47", + "nodemon": "^3.1.9", + "npm-check-updates": "^17.1.16", + "parcel": "^2.14.1", + "postcss": "^8.5.3", "postcss-loader": "^8.1.1", - "sass-loader": "^16.0.2", + "prettier": "3", "strip-ansi": "=7.1.0", - "ts-jest": "^29.2.5", - "ts-loader": "^9.5.1", - "typescript": "5.6.2", + "ts-jest": "^29.2.6", + "typescript": "5.7.3", + "vite-plugin-checker": "^0.9.1", "vue-cli-plugin-element-ui": "^1.1.4", + "vue-eslint-parser": "^10.1.1", + "vue-tsc": "^2.2.8", "vueify": "^9.4.1", - "webpack": "^5.95.0", - "webpack-dashboard": "^3.3.8", - "workbox-webpack-plugin": "^7.1.0" + "workbox-build": "^7.3.0" }, - "browser": { - "crypto": false - }, - "browserslist": [ - "last 13 Chrome versions", - "last 13 Firefox versions", - "last 4 Edge versions", - "last 13 Safari versions", - "last 14 Android versions", - "last 14 ChromeAndroid versions", - "last 14 FirefoxAndroid versions", - "last 10 iOS versions", - "last 5 Opera versions" - ], "engines": { - "node": ">= 16.14.0", - "npm": ">= 6.14.8", + "node": "^28 || ^26 || ^24 || ^22 || ^20 || ^18", + "npm": ">= 6.13.4", "yarn": ">= 1.21.1" } } diff --git a/scripts/_ALL_SITES/gruppomacro.app/package.json b/scripts/_ALL_SITES/gruppomacro.app/package.json index 6451c3cd..616a29ff 100755 --- a/scripts/_ALL_SITES/gruppomacro.app/package.json +++ b/scripts/_ALL_SITES/gruppomacro.app/package.json @@ -1,6 +1,6 @@ { "name": "gruppomacro", - "version": "1.2.28", + "version": "1.2.29", "description": "Gruppo Macro", "productName": "Gruppo Macro", "author": "Surya", @@ -9,45 +9,46 @@ "license": "MIT", "type": "module", "scripts": { - "dev": "PORT=8089:APP_VERSION='1.2.28' quasar dev", + "dev": "PORT=8089 APP_VERSION='1.2.29' quasar dev", "dev_noCheck": "SKIP_TSC=true quasar dev", "build": "quasar build", - "buildpwa": "NODE_ENV=production:APP_VERSION='1.2.28' quasar build -m pwa", - "buildpwatest": "NODE_ENV=production:APP_VERSION='1.2.28' quasar build -m pwa", + "buildpwa": "NODE_ENV=production APP_VERSION='1.2.29' quasar build -m pwa", + "buildpwatest": "NODE_ENV=production APP_VERSION='1.2.29' quasar build -m pwa", "type-check": "vue-tsc --noEmit", "type-check:watch": "vue-tsc --noEmit --watch", - "buildspa": "APP_VERSION='1.2.28' quasar build -m spa", + "buildspa": "APP_VERSION='1.2.29' quasar build -m spa", "lint": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\"", "lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt", "lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt", "fix": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\" --ignore-pattern .gitignore ./ --fix > file.out.txt", - "pwa": "NODE_ENV=development:PORT=8099:APP_VERSION='1.2.28' quasar dev -m pwa", - "spa": "NODE_ENV=development:PORT=8089:APP_VERSION='1.2.28' quasar dev", + "pwa": "NODE_ENV=development PORT=8099 APP_VERSION='1.2.29' quasar dev -m pwa", + "spa": "NODE_ENV=development PORT=8089 APP_VERSION='1.2.29' quasar dev", "debug": "quasar dev --mode debug", "test": "echo \"No test specified\" && exit 0", "generate-sw": "workbox generateSW workbox-config.js", "postinstall": "quasar prepare" }, "dependencies": { - "@cubejs-client/core": "^1.2.13", + "@cubejs-client/core": "^1.2.26", "@quasar/extras": "^1.16.17", "@quasar/quasar-ui-qcalendar": "^4.1.2", - "@types/leaflet": "^1.9.16", + "@types/jsbarcode": "^3.11.4", + "@types/leaflet": "^1.9.17", "@vue/compat": "^3.5.13", "@vue/compiler-sfc": "^3.5.13", "@vuelidate/core": "^2.0.3", "@vuelidate/validators": "^2.0.4", - "acorn": "^8.14.0", + "acorn": "^8.14.1", "animate.css": "^4.1.1", - "autoprefixer": "^10.4.20", - "axios": "^1.8.1", + "autoprefixer": "^10.4.21", + "axios": "^1.8.4", "bcryptjs": "^3.0.2", "chart.js": "^4.4.8", "core-js": "^3.41.0", "crypto-browserify": "^3.12.1", "date-fns": "^4.1.0", "echarts": "5.6.0", - "eslint-plugin-n": "^17.15.1", + "eslint-plugin-n": "^17.16.2", "eslint-plugin-quasar": "^1.1.0", "graphql": "^16.10.0", "graphql-tag": "^2.12.6", @@ -55,6 +56,7 @@ "html2pdf.js": "^0.10.3", "jquery": "^3.7.1", "js-cookie": "^3.0.5", + "jsbarcode": "^3.11.6", "leaflet": "^1.9.4", "leaflet-routing-machine": "^3.2.12", "leaflet.markercluster": "^1.5.3", @@ -64,17 +66,17 @@ "nprogress": "^0.2.0", "pinia": "^3.0.1", "qrcode-vue3": "^1.7.1", - "quasar": "^2.18.0", + "quasar": "^2.18.1", "quasar-extras": "^2.0.9", "register-service-worker": "^1.7.2", "scrollreveal": "^4.0.9", - "typescript-eslint": "^8.25.0", + "typescript-eslint": "^8.27.0", "vee-validate": "^4.15.0", "vue": "^3.5.13", "vue-class-component": "^8.0.0-rc.1", "vue-country-code": "^1.1.3", "vue-echarts": "^7.0.3", - "vue-i18n": "^11.1.1", + "vue-i18n": "^11.1.2", "vue-idb": "^0.2.0", "vue-image-zoomer": "^2.4.4", "vue-property-decorator": "^10.0.0-rc.3", @@ -95,41 +97,41 @@ "workbox-window": "^7.3.0" }, "devDependencies": { - "@eslint/js": "^9.21.0", - "@intlify/unplugin-vue-i18n": "^6.0.3", - "@quasar/app-vite": "^2.1.1", - "@types/bcryptjs": "^2.4.6", + "@eslint/js": "^9.23.0", + "@intlify/unplugin-vue-i18n": "^6.0.5", + "@quasar/app-vite": "^2.1.4", "@types/google.maps": "^3.58.1", "@types/jest": "^29.5.14", "@types/js-cookie": "^3.0.6", - "@types/node": "^22.13.8", + "@types/node": "^22.13.11", "@types/nprogress": "^0.2.3", "@types/vue-tel-input": "^2.1.7", "@types/vuelidate": "^0.7.22", "@vue/devtools": "^7.7.2", "@vue/eslint-config-prettier": "^10.2.0", - "@vue/eslint-config-typescript": "^14.4.0", - "autoprefixer": "^10.4.20", + "@vue/eslint-config-typescript": "^14.5.0", + "autoprefixer": "^10.4.21", "eslint": "9", "eslint-plugin-import": "^2.31.0", - "eslint-plugin-vue": "^9.32.0", + "eslint-plugin-vue": "^10.0.0", "file-loader": "^6.2.0", "globals": "^16.0.0", "http-proxy-middleware": "^3.0.3", "jest": "^29.7.0", "json-loader": "^0.5.7", "nodemon": "^3.1.9", - "npm-check-updates": "^17.1.15", - "parcel": "^2.13.3", + "npm-check-updates": "^17.1.16", + "parcel": "^2.14.1", "postcss": "^8.5.3", "postcss-loader": "^8.1.1", "prettier": "3", "strip-ansi": "=7.1.0", "ts-jest": "^29.2.6", "typescript": "5.7.3", - "vite-plugin-checker": "^0.9.0", + "vite-plugin-checker": "^0.9.1", "vue-cli-plugin-element-ui": "^1.1.4", - "vue-tsc": "^2.2.6", + "vue-eslint-parser": "^10.1.1", + "vue-tsc": "^2.2.8", "vueify": "^9.4.1", "workbox-build": "^7.3.0" }, @@ -138,4 +140,4 @@ "npm": ">= 6.13.4", "yarn": ">= 1.21.1" } -} \ No newline at end of file +} diff --git a/scripts/_ALL_SITES/kolibrilab.it/package.json b/scripts/_ALL_SITES/kolibrilab.it/package.json index 847e973f..e1b1ae73 100755 --- a/scripts/_ALL_SITES/kolibrilab.it/package.json +++ b/scripts/_ALL_SITES/kolibrilab.it/package.json @@ -1,6 +1,6 @@ { "name": "kolibrilab", - "version": "0.5.3", + "version": "1.2.29", "description": "kolibrilab", "productName": "kolibrilab", "author": "Surya Paolo", @@ -8,132 +8,134 @@ "keywords": [], "license": "MIT", "scripts": { - "dev": "quasar dev", + "dev": "PORT=8083 APP_VERSION='1.2.29' quasar dev", + "dev_noCheck": "SKIP_TSC=true quasar dev", "build": "quasar build", - "buildpwa": "NODE_ENV=production quasar build -m pwa", + "buildpwa": "NODE_ENV=production APP_VERSION='1.2.29' quasar build -m pwa", + "buildpwatest": "NODE_ENV=production APP_VERSION='1.2.29' quasar build -m pwa", + "type-check": "vue-tsc --noEmit", + "type-check:watch": "vue-tsc --noEmit --watch", "buildspa": "quasar build -m spa", "lint": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./", "lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt", "lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt", "fix": "eslint --ext .ts,.vue --ignore-path .gitignore ./ --fix > file.out.txt", - "pwa": "NODE_ENV=development NODE_OPTIONS=--max_old_space_size=4096 DEBUG=v8:* quasar dev -m pwa", - "spa": "NODE_ENV=development NODE_OPTIONS=--max_old_space_size=4096 DEBUG=v8:* quasar dev -m spa", + "pwa": "NODE_ENV=development PORT=8093 APP_VERSION='1.2.29' quasar dev -m pwa", + "spa": "NODE_ENV=development PORT=8083 APP_VERSION='1.2.29' quasar dev", "spanorefresh": "NODE_ENV=development NODE_OPTIONS=--max_old_space_size=4096 DEBUG=v8:* quasar dev -m spa", "test": "echo \"No test specified\" && exit 0", "generate-sw": "workbox generateSW workbox-config.js" }, "dependencies": { - "@quasar/extras": "^1.15.5", - "@quasar/quasar-ui-qcalendar": "^4.0.0-beta.13", - "@vue-leaflet/vue-leaflet": "^0.6.1", - "@vue/compat": "^3.2.45", - "@vue/compiler-sfc": "^3.2.45", - "@vue/eslint-config-standard": "7.0.0", - "@vuelidate/core": "^2.0.0", - "@vuelidate/validators": "^2.0.0", - "acorn": "^8.8.1", + "@cubejs-client/core": "^1.2.26", + "@quasar/extras": "^1.16.17", + "@quasar/quasar-ui-qcalendar": "^4.1.2", + "@types/jsbarcode": "^3.11.4", + "@types/leaflet": "^1.9.17", + "@vue/compat": "^3.5.13", + "@vue/compiler-sfc": "^3.5.13", + "@vuelidate/core": "^2.0.3", + "@vuelidate/validators": "^2.0.4", + "acorn": "^8.14.1", "animate.css": "^4.1.1", - "autoprefixer": "^10.4.13", - "axios": "^1.1.3", - "bcryptjs": "^2.4.3", - "chart.js": "^3.9.1", - "core-js": "^3.26.0", - "date-fns": "^2.29.3", - "dotenv": "^16.0.3", - "echarts": "^5.4.0", - "eslint-plugin-quasar": "^1.1.1", - "eslint-plugin-standard": "^5.0.0", - "graphql": "^16.6.0", + "autoprefixer": "^10.4.21", + "axios": "^1.8.4", + "bcryptjs": "^3.0.2", + "chart.js": "^4.4.8", + "core-js": "^3.41.0", + "crypto-browserify": "^3.12.1", + "date-fns": "^4.1.0", + "echarts": "5.6.0", + "eslint-plugin-n": "^17.16.2", + "eslint-plugin-quasar": "^1.1.0", + "graphql": "^16.10.0", "graphql-tag": "^2.12.6", - "gsap": "^3.11.3", - "jquery": "^3.6.1", - "js-cookie": "^3.0.1", + "gsap": "^3.12.7", + "html2pdf.js": "^0.10.3", + "jquery": "^3.7.1", + "js-cookie": "^3.0.5", + "jsbarcode": "^3.11.6", + "leaflet": "^1.9.4", + "leaflet-routing-machine": "^3.2.12", + "leaflet.markercluster": "^1.5.3", "localforage": "^1.10.0", "lodash": "^4.17.21", "normalize.css": "^8.0.1", - "npm": "^9.1.1", "nprogress": "^0.2.0", - "pinia": "^2.0.23", - "prerender-spa-plugin": "^3.4.0", - "quasar": "^2.10.1", + "pinia": "^3.0.1", + "qrcode-vue3": "^1.7.1", + "quasar": "^2.18.1", "quasar-extras": "^2.0.9", "register-service-worker": "^1.7.2", - "vee-validate": "^4.7.2", - "vue": "^3.2.45", - "vue-chart-3": "^3.1.8", + "scrollreveal": "^4.0.9", + "typescript-eslint": "^8.27.0", + "vee-validate": "^4.15.0", + "vue": "^3.5.13", "vue-class-component": "^8.0.0-rc.1", "vue-country-code": "^1.1.3", - "vue-echarts": "^6.2.3", - "vue-i18n": "^9.2.2", + "vue-echarts": "^7.0.3", + "vue-i18n": "^11.1.2", "vue-idb": "^0.2.0", - "vue-loader": "^17.0.1", + "vue-image-zoomer": "^2.4.4", "vue-property-decorator": "^10.0.0-rc.3", - "vue-router": "^4.1.6", - "vue-scroll-reveal": "^1.0.11", + "vue-router": "^4.5.0", + "vue-scroll-reveal": "^2.1.0", + "vue-social-sharing": "^4.0.0-alpha4", "vue-svgicon": "^4.0.0-alpha.3", + "vue-timeago3": "^2.3.2", "vue2-dragula": "^2.5.5", + "vue3-pdf-app": "^1.0.3", + "vue3-qr-reader": "^1.0.0", "vuex": "^4.1.0", - "vuex-router-sync": "^6.0.0-rc.1" + "vuex-router-sync": "^6.0.0-rc.1", + "workbox-core": "^7.3.0", + "workbox-precaching": "^7.3.0", + "workbox-routing": "^7.3.0", + "workbox-strategies": "^7.3.0", + "workbox-window": "^7.3.0" }, "devDependencies": { - "@quasar/app": "^3.3.3", - "@types/bcryptjs": "^2.4.2", - "@types/dotenv": "^8.2.0", - "@types/googlemaps": "^3.43.3", - "@types/jest": "^29.2.2", - "@types/js-cookie": "^3.0.2", - "@types/node": "18.11.9", - "@types/nprogress": "^0.2.0", - "@types/vue-tel-input": "^2.1.2", - "@types/vuelidate": "^0.7.15", - "@typescript-eslint/eslint-plugin": "^5.42.1", - "@typescript-eslint/parser": "^5.42.1", - "eslint": "^8.27.0", - "eslint-config-prettier": "^8.5.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-node": "^11.1.1", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-vue": "^9.7.0", + "@eslint/js": "^9.23.0", + "@intlify/unplugin-vue-i18n": "^6.0.5", + "@quasar/app-vite": "^2.1.4", + "@types/google.maps": "^3.58.1", + "@types/jest": "^29.5.14", + "@types/js-cookie": "^3.0.6", + "@types/node": "^22.13.11", + "@types/nprogress": "^0.2.3", + "@types/vue-tel-input": "^2.1.7", + "@types/vuelidate": "^0.7.22", + "@vue/devtools": "^7.7.2", + "@vue/eslint-config-prettier": "^10.2.0", + "@vue/eslint-config-typescript": "^14.5.0", + "autoprefixer": "^10.4.21", + "eslint": "9", + "eslint-plugin-import": "^2.31.0", + "eslint-plugin-vue": "^10.0.0", "file-loader": "^6.2.0", - "html-webpack-plugin": "^5.5.0", - "http-proxy-middleware": "^2.0.6", - "jest": "^29.3.1", + "globals": "^16.0.0", + "http-proxy-middleware": "^3.0.3", + "jest": "^29.7.0", "json-loader": "^0.5.7", - "node-sass": "7.0.1", - "npm-check-updates": "^16.3.25", - "optimize-css-assets-webpack-plugin": "^6.0.1", - "postcss": "^8.4.19", - "postcss-loader": "^7.0.1", - "sass-loader": "^13.2.0", - "strip-ansi": "=7.0.1", - "ts-jest": "^29.0.3", - "ts-loader": "^9.4.1", - "tslint": "^6.1.3", - "tslint-config-standard": "^9.0.0", - "tslint-loader": "^3.5.4", - "typescript": "^4.8.4", + "nodemon": "^3.1.9", + "npm-check-updates": "^17.1.16", + "parcel": "^2.14.1", + "postcss": "^8.5.3", + "postcss-loader": "^8.1.1", + "prettier": "3", + "strip-ansi": "=7.1.0", + "ts-jest": "^29.2.6", + "typescript": "5.7.3", + "vite-plugin-checker": "^0.9.1", "vue-cli-plugin-element-ui": "^1.1.4", + "vue-eslint-parser": "^10.1.1", + "vue-tsc": "^2.2.8", "vueify": "^9.4.1", - "webpack": "^5.75.0", - "workbox-webpack-plugin": "^6.5.4" + "workbox-build": "^7.3.0" }, - "browser": { - "crypto": false - }, - "browserslist": [ - "last 16 Chrome versions", - "last 16 Firefox versions", - "last 4 Edge versions", - "last 13 Safari versions", - "last 16 Android versions", - "last 16 ChromeAndroid versions", - "last 16 FirefoxAndroid versions", - "last 12 iOS versions", - "last 7 Opera versions" - ], "engines": { - "node": ">= 16.14.0", - "npm": ">= 6.14.8", + "node": "^28 || ^26 || ^24 || ^22 || ^20 || ^18", + "npm": ">= 6.13.4", "yarn": ">= 1.21.1" } -} \ No newline at end of file +} diff --git a/scripts/_ALL_SITES/piuchebuono.app/package.json b/scripts/_ALL_SITES/piuchebuono.app/package.json index 761e04ac..aa5ec550 100755 --- a/scripts/_ALL_SITES/piuchebuono.app/package.json +++ b/scripts/_ALL_SITES/piuchebuono.app/package.json @@ -1,6 +1,6 @@ { "name": "piuchebuono", - "version": "1.2.28", + "version": "1.2.29", "description": "PiuCheBuono", "productName": "PiuCheBuono", "author": "Surya", @@ -9,11 +9,11 @@ "license": "MIT", "type": "module", "scripts": { - "dev": "PORT=8085;APP_VERSION='1.2.28' quasar dev", + "dev": "PORT=8085 APP_VERSION='1.2.29' quasar dev", "dev_noCheck": "SKIP_TSC=true quasar dev", "build": "quasar build", - "buildpwa": "NODE_ENV=production quasar build -m pwa", - "buildpwatest": "NODE_ENV=production quasar build -m pwa", + "buildpwa": "NODE_ENV=production APP_VERSION='1.2.29' quasar build -m pwa", + "buildpwatest": "NODE_ENV=production APP_VERSION='1.2.29' quasar build -m pwa", "type-check": "vue-tsc --noEmit", "type-check:watch": "vue-tsc --noEmit --watch", "buildspa": "quasar build -m spa", @@ -21,33 +21,34 @@ "lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt", "lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt", "fix": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\" --ignore-pattern .gitignore ./ --fix > file.out.txt", - "pwa": "NODE_ENV=development:PORT=8095:APP_VERSION='1.2.28' quasar dev -m pwa", - "spa": "NODE_ENV=development:PORT=8085:APP_VERSION='1.2.28' quasar dev", + "pwa": "NODE_ENV=development PORT=8085 APP_VERSION='1.2.29' quasar dev -m pwa", + "spa": "NODE_ENV=development PORT=8085 APP_VERSION='1.2.29' quasar dev", "debug": "quasar dev --mode debug", "test": "echo \"No test specified\" && exit 0", "generate-sw": "workbox generateSW workbox-config.js", "postinstall": "quasar prepare" }, "dependencies": { - "@cubejs-client/core": "^1.2.13", + "@cubejs-client/core": "^1.2.26", "@quasar/extras": "^1.16.17", "@quasar/quasar-ui-qcalendar": "^4.1.2", - "@types/leaflet": "^1.9.16", + "@types/jsbarcode": "^3.11.4", + "@types/leaflet": "^1.9.17", "@vue/compat": "^3.5.13", "@vue/compiler-sfc": "^3.5.13", "@vuelidate/core": "^2.0.3", "@vuelidate/validators": "^2.0.4", - "acorn": "^8.14.0", + "acorn": "^8.14.1", "animate.css": "^4.1.1", - "autoprefixer": "^10.4.20", - "axios": "^1.8.1", + "autoprefixer": "^10.4.21", + "axios": "^1.8.4", "bcryptjs": "^3.0.2", "chart.js": "^4.4.8", "core-js": "^3.41.0", "crypto-browserify": "^3.12.1", "date-fns": "^4.1.0", "echarts": "5.6.0", - "eslint-plugin-n": "^17.15.1", + "eslint-plugin-n": "^17.16.2", "eslint-plugin-quasar": "^1.1.0", "graphql": "^16.10.0", "graphql-tag": "^2.12.6", @@ -55,6 +56,7 @@ "html2pdf.js": "^0.10.3", "jquery": "^3.7.1", "js-cookie": "^3.0.5", + "jsbarcode": "^3.11.6", "leaflet": "^1.9.4", "leaflet-routing-machine": "^3.2.12", "leaflet.markercluster": "^1.5.3", @@ -64,17 +66,17 @@ "nprogress": "^0.2.0", "pinia": "^3.0.1", "qrcode-vue3": "^1.7.1", - "quasar": "^2.18.0", + "quasar": "^2.18.1", "quasar-extras": "^2.0.9", "register-service-worker": "^1.7.2", "scrollreveal": "^4.0.9", - "typescript-eslint": "^8.25.0", + "typescript-eslint": "^8.27.0", "vee-validate": "^4.15.0", "vue": "^3.5.13", "vue-class-component": "^8.0.0-rc.1", "vue-country-code": "^1.1.3", "vue-echarts": "^7.0.3", - "vue-i18n": "^11.1.1", + "vue-i18n": "^11.1.2", "vue-idb": "^0.2.0", "vue-image-zoomer": "^2.4.4", "vue-property-decorator": "^10.0.0-rc.3", @@ -95,41 +97,41 @@ "workbox-window": "^7.3.0" }, "devDependencies": { - "@eslint/js": "^9.21.0", - "@intlify/unplugin-vue-i18n": "^6.0.3", - "@quasar/app-vite": "^2.1.1", - "@types/bcryptjs": "^2.4.6", + "@eslint/js": "^9.23.0", + "@intlify/unplugin-vue-i18n": "^6.0.5", + "@quasar/app-vite": "^2.1.4", "@types/google.maps": "^3.58.1", "@types/jest": "^29.5.14", "@types/js-cookie": "^3.0.6", - "@types/node": "^22.13.8", + "@types/node": "^22.13.11", "@types/nprogress": "^0.2.3", "@types/vue-tel-input": "^2.1.7", "@types/vuelidate": "^0.7.22", "@vue/devtools": "^7.7.2", "@vue/eslint-config-prettier": "^10.2.0", - "@vue/eslint-config-typescript": "^14.4.0", - "autoprefixer": "^10.4.20", + "@vue/eslint-config-typescript": "^14.5.0", + "autoprefixer": "^10.4.21", "eslint": "9", "eslint-plugin-import": "^2.31.0", - "eslint-plugin-vue": "^9.32.0", + "eslint-plugin-vue": "^10.0.0", "file-loader": "^6.2.0", "globals": "^16.0.0", "http-proxy-middleware": "^3.0.3", "jest": "^29.7.0", "json-loader": "^0.5.7", "nodemon": "^3.1.9", - "npm-check-updates": "^17.1.15", - "parcel": "^2.13.3", + "npm-check-updates": "^17.1.16", + "parcel": "^2.14.1", "postcss": "^8.5.3", "postcss-loader": "^8.1.1", "prettier": "3", "strip-ansi": "=7.1.0", "ts-jest": "^29.2.6", "typescript": "5.7.3", - "vite-plugin-checker": "^0.9.0", + "vite-plugin-checker": "^0.9.1", "vue-cli-plugin-element-ui": "^1.1.4", - "vue-tsc": "^2.2.6", + "vue-eslint-parser": "^10.1.1", + "vue-tsc": "^2.2.8", "vueify": "^9.4.1", "workbox-build": "^7.3.0" }, @@ -138,4 +140,4 @@ "npm": ">= 6.13.4", "yarn": ">= 1.21.1" } -} \ No newline at end of file +} diff --git a/scripts/_ALL_SITES/riso.app/package.json b/scripts/_ALL_SITES/riso.app/package.json index 49226904..8012eaf1 100755 --- a/scripts/_ALL_SITES/riso.app/package.json +++ b/scripts/_ALL_SITES/riso.app/package.json @@ -1,6 +1,6 @@ { "name": "riso", - "version": "1.2.28", + "version": "1.2.29", "description": "Siamo la Rete Italiana di Scambio Orizzontale, abbiamo creato questa piattaforma per metterla al servizio di chi vuole riscoprire il valore della condivisione e della cooperazione. Valori semplici e profondi che ci aiutano a ritrovare il Senso della Vita, perduto in questa società consumista, e riporti quei Sani Pricìpi Naturali ed Umani di Fratellanza che intere popolazioni antiche conoscevano bene.", "productName": "Riso", "author": "Surya", @@ -9,11 +9,11 @@ "license": "MIT", "type": "module", "scripts": { - "dev": "PORT=8084:APP_VERSION='1.2.28' quasar dev", + "dev": "PORT=8084 APP_VERSION='1.2.29' quasar dev", "dev_noCheck": "SKIP_TSC=true quasar dev", "build": "quasar build", - "buildpwa": "NODE_ENV=production:APP_VERSION='1.2.28' quasar build -m pwa", - "buildpwatest": "NODE_ENV=production:APP_VERSION='1.2.28' quasar build -m pwa", + "buildpwa": "NODE_ENV=production APP_VERSION='1.2.29' quasar build -m pwa", + "buildpwatest": "NODE_ENV=production APP_VERSION='1.2.29' quasar build -m pwa", "type-check": "vue-tsc --noEmit", "type-check:watch": "vue-tsc --noEmit --watch", "buildspa": "quasar build -m spa", @@ -21,8 +21,8 @@ "lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt", "lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt", "fix": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\" --ignore-pattern .gitignore ./ --fix > file.out.txt", - "pwa": "NODE_ENV=development:PORT=8099:APP_VERSION='1.2.28' quasar dev -m pwa", - "spa": "NODE_ENV=development:PORT=8089:APP_VERSION='1.2.28' quasar dev", + "pwa": "NODE_ENV=development PORT=8099 APP_VERSION='1.2.29' quasar dev -m pwa", + "spa": "NODE_ENV=development PORT=8089 APP_VERSION='1.2.29' quasar dev", "debug": "quasar dev --mode debug", "test": "echo \"No test specified\" && exit 0", "generate-sw": "workbox generateSW workbox-config.js", diff --git a/src-pwa/custom-service-worker.js b/src-pwa/custom-service-worker.js index b7ff5d1c..56d752cc 100755 --- a/src-pwa/custom-service-worker.js +++ b/src-pwa/custom-service-worker.js @@ -3,7 +3,7 @@ /* global workbox */ /* global cfgenv */ -const VITE_APP_VERSION = "1.2.28"; +const VITE_APP_VERSION = "1.2.29"; const CACHE_NAME = 'pwa-cache-' + VITE_APP_VERSION; // Nome della cache @@ -259,89 +259,72 @@ if (workbox) { const DYNAMIC_CACHE = 'dynamic-cache-v2'; const ENABLE_DYNAMIC_CACHING = true; const baseUrl = self.location.origin; - console.log('baseUrl', baseUrl); const APP_DOMAIN = extractDomain(baseUrl); - let API_DOMAIN = ''; - if (ISTEST) { - API_DOMAIN = 'testapi.' + removeTestPrefix(APP_DOMAIN); - } else { - if (APP_DOMAIN.includes('localhost')) { - API_DOMAIN = 'localhost:3000'; - } else { - API_DOMAIN = 'api.' + APP_DOMAIN; - } - } + const API_DOMAIN = determineApiDomain(APP_DOMAIN); console.log('API_DOMAIN', API_DOMAIN); - // Funzione per gestire specificamente le richieste API + // Funzione per determinare il dominio API + function determineApiDomain(appDomain) { + if (ISTEST) { + return 'testapi.' + removeTestPrefix(appDomain); + } + return appDomain.includes('localhost') ? 'localhost:3000' : 'api.' + appDomain; + } + + // Funzione per gestire richieste API async function handleApiRequest(request) { - const modifiedRequest = new Request(request.url, { - method: request.method, - headers: { - ...Object.fromEntries(request.headers.entries()), - 'Accept': 'application/json', - }, - mode: 'cors', - credentials: 'include', // Abilita le credenziali (cookie, token) - }); - try { - const response = await fetch(modifiedRequest); + const response = await fetch(request); + // Se la risposta non è valida, restituisci un errore personalizzato if (!response.ok) { console.warn('[SW] API Response Error:', response.status, response.statusText); - - // Prova a recuperare una risposta dalla cache - const cache = await caches.open('api-cache'); - const cachedResponse = await cache.match(request); - if (cachedResponse) { - return cachedResponse; - } - - // Fallback a una risposta personalizzata return new Response(JSON.stringify({ error: 'API error', message: `❌ Invalid response from API: ${response.status} ${response.statusText}`, - }), { - status: response.status, - headers: { 'Content-Type': 'application/json' }, - }); + }), { status: response.status, headers: { 'Content-Type': 'application/json' } }); } - // Se la risposta è valida, restituiscila return response; } catch (error) { console.error('[Service Worker] API request error ❌:', error); - // Prova a recuperare una risposta dalla cache - const cache = await caches.open('api-cache'); - const cachedResponse = await cache.match(request); - if (cachedResponse) { - return cachedResponse; - } - // Restituisci una risposta di errore personalizzata return new Response(JSON.stringify({ error: 'Network error', message: '❌ Unable to fetch from API: ' + error.message, - }), { - status: 503, - headers: { - 'Content-Type': 'application/json', - }, - }); + }), { status: 503, headers: { 'Content-Type': 'application/json' } }); + } + } + + // Funzione per effettuare una richiesta di rete e memorizzare nella cache + async function fetchAndCache(request) { + const cache = await caches.open(DYNAMIC_CACHE); + try { + const response = await fetch(request); + + // Clona e salva la risposta nella cache solo se valida + if (response.ok) { + const responseClone = response.clone(); + cache.put(request, responseClone); + } + + return response; + } catch (error) { + console.error('[SW] Fetch and cache error ❌:', error); + throw error; } } // Strategia di caching: stale-while-revalidate async function cacheWithStaleWhileRevalidate(request, event) { - const cache = await caches.open(CACHE_NAME); + const cache = await caches.open(DYNAMIC_CACHE); // Prova a recuperare la risorsa dalla cache const cachedResponse = await cache.match(request); if (cachedResponse) { - // Restituisci la risposta in cache mentre aggiorni in background + // Aggiorna in background mentre restituisci la risposta in cache event.waitUntil(fetchAndCache(request).catch((error) => { console.error('[SW] Background fetch and cache error ❌:', error); })); @@ -350,8 +333,7 @@ if (workbox) { // Se non è in cache, fai la richiesta di rete try { - const response = await fetchAndCache(request); - return response; + return await fetchAndCache(request); } catch (error) { console.error('[SW] Cache miss and network error ❌:', error); @@ -359,40 +341,41 @@ if (workbox) { return new Response(JSON.stringify({ error: 'Network error', message: 'Unable to fetch resource from network or cache.', - }), { - status: 503, - headers: { 'Content-Type': 'application/json' }, - }); + }), { status: 503, headers: { 'Content-Type': 'application/json' } }); } } // Listener per gestire tutte le richieste self.addEventListener('fetch', (event) => { - const request = event.request; + const { request } = event; const url = new URL(request.url); + try { - // Ignora richieste non gestibili - if (request.method !== 'GET' || url.protocol !== 'https:') { - return; - } - - // Gestione richieste API - if (url.hostname === API_DOMAIN) { - if (debug) { - console.log('E\' una RICHIESTA API ! ') + // Ignora richieste non gestibili + if (request.method !== 'GET' || url.protocol !== 'https:') { + return; } - event.respondWith(handleApiRequest(request)); - return; - } - if (debug) { - console.log('E\' una RICHIESTA statica...') + // Ignora richieste per file di sviluppo (es. /src/) + if (url.pathname.startsWith('/src/') || url.search.includes('vue&type')) { + return; + } + + // Gestione richieste API + if (url.hostname === API_DOMAIN) { + if (debug) console.log('E\' una RICHIESTA API!'); + event.respondWith(handleApiRequest(request)); + return; + } + + // Gestione risorse statiche e altre richieste + if (debug) console.log('E\' una RICHIESTA statica...'); + event.respondWith(cacheWithStaleWhileRevalidate(request, event)); + } catch (error) { + console.error('[Service Worker] Fetch error ❌:', error); } - // Gestione risorse statiche e altre richieste - event.respondWith(cacheWithStaleWhileRevalidate(request, event)); }); - // Gestione degli errori non catturati self.addEventListener('unhandledrejection', event => { console.error('[Service Worker] Unhandled rejection ❌:', event.reason); diff --git a/src-pwa/manifest.json b/src-pwa/manifest.json index d70a91e9..c4032e4f 100644 --- a/src-pwa/manifest.json +++ b/src-pwa/manifest.json @@ -1,7 +1,7 @@ { - "name": "Gruppo Macro", - "short_name": "GruppoMacro", - "description": "", + "name": "Riso", + "short_name": "Riso", + "description": "Siamo la Rete Italiana di Scambio Orizzontale, abbiamo creato questa piattaforma per metterla al servizio di chi vuole riscoprire il valore della condivisione e della cooperazione. Valori semplici e profondi che ci aiutano a ritrovare il Senso della Vita, perduto in questa società consumista, e riporti quei Sani Pricìpi Naturali ed Umani di Fratellanza che intere popolazioni antiche conoscevano bene.", "display": "standalone", "orientation": "portrait", "background_color": "#fff", @@ -11,17 +11,47 @@ "start_url": "/?homescreen=1", "icons": [ { - "src": "/images/gm-android-icon-512x512.png", + "src:": "/images/riso-android-icon-512x512.png", "sizes": "512x512", "type": "image/png" }, { - "src": "/images/gm-android-icon-192x192.png", + "src:": "/images/riso-android-icon-384x384.png", + "sizes": "384x384", + "type": "image/png" + }, + { + "src:": "/images/riso-android-icon-192x192.png", "sizes": "192x192", "type": "image/png" }, { - "src": "/images/gm-apple-touch-icon.png", + "src:": "/images/riso-android-icon-144x144.png", + "sizes": "144x144", + "type": "image/png" + }, + { + "src:": "/images/riso-android-icon-96x96.png", + "sizes": "96x96", + "type": "image/png" + }, + { + "src:": "/images/riso-apple-icon-120x120.png", + "sizes": "120x120", + "type": "image/png" + }, + { + "src:": "/images/riso-apple-icon-144x144.png", + "sizes": "144x144", + "type": "image/png" + }, + { + "src:": "/images/riso-apple-icon-152x152.png", + "sizes": "152x152", + "type": "image/png" + }, + { + "src:": "/images/riso-apple-icon-180x180.png", "sizes": "180x180", "type": "image/png" } diff --git a/src-pwa/register-service-worker.js b/src-pwa/register-service-worker.js index faaa4e67..f50a3ede 100755 --- a/src-pwa/register-service-worker.js +++ b/src-pwa/register-service-worker.js @@ -5,9 +5,12 @@ import { register } from 'register-service-worker' -console.log('SWFILE: ', import.meta.env.VITE_SERVICE_WORKER_FILE); +const SW_FILE = `/${import.meta.env.VITE_SERVICE_WORKER_FILE}`; -register(import.meta.env.VITE_SERVICE_WORKER_FILE, { + +console.log('SWFILE: ', SW_FILE); + +register(SW_FILE, { scope: '/', /************* ✨ Codeium Command ⭐ *************/ /** diff --git a/src/components/CFindUsers/CFindUsers.ts b/src/components/CFindUsers/CFindUsers.ts index 7f2575a3..1d0f402f 100755 --- a/src/components/CFindUsers/CFindUsers.ts +++ b/src/components/CFindUsers/CFindUsers.ts @@ -53,6 +53,7 @@ export default defineComponent({ const receiveRislist = computed(() => globalStore.datastat ? globalStore.datastat.receiveRislist : []) const receiveRislistgroup = computed(() => globalStore.datastat ? globalStore.datastat.receiveRislistgroup : []) + const listlinksreg = computed(() => globalStore.datastat ? globalStore.datastat.listlinksreg : []) const arrfilterand: any = ref([]) const filtercustom: any = ref([]) @@ -107,6 +108,8 @@ export default defineComponent({ function mounted() { + usersList.value.listlinkreg = listlinksreg + searchList.value = [ { visible: true, @@ -190,6 +193,7 @@ export default defineComponent({ usersList.value.list = receiveRislist usersList.value.listgroup = receiveRislistgroup + // usersList.value.listlinkreg = listlinksreg loading.value = false } diff --git a/src/components/CFindUsers/CFindUsers.vue b/src/components/CFindUsers/CFindUsers.vue index 6d386718..f71bf4bd 100755 --- a/src/components/CFindUsers/CFindUsers.vue +++ b/src/components/CFindUsers/CFindUsers.vue @@ -41,7 +41,7 @@ -
+
@@ -83,6 +83,7 @@ +
 

{{ labelextra }} globalStore.datastat ? globalStore.datastat.listlinksreg : []) + const slide = ref('start') + const actionType = ref(costanti.ACTIONTYPE.LINK_REG) + function clickToRegister() { //if (site.value.confpages.enableRegByBot) { @@ -59,6 +66,8 @@ export default defineComponent({ const invitante = tools.getInvitante() console.log('invitante', invitante) + + if (props.invited) { start.value = true chooseReg.value = true @@ -99,6 +108,9 @@ export default defineComponent({ slide, regEventEmail, buttRegistrati, + costanti, + listlinksreg, + actionType, } }, }) diff --git a/src/components/CRegistration/CRegistration.vue b/src/components/CRegistration/CRegistration.vue index a0f6eedc..8b2fac1d 100755 --- a/src/components/CRegistration/CRegistration.vue +++ b/src/components/CRegistration/CRegistration.vue @@ -4,7 +4,6 @@ class="row q-ma-sm centermydiv2 q-pa-sm justify-center align-center" >
- - - + +
{{ $t('reg.invitante') }} @@ -40,7 +45,7 @@ size="lg" color="positive" @click=" - slide = 'second'; + listlinksreg.length > 0 ? slide = 'sceglilink' : slide = 'second'; noInvited = false; chooseReg = true; " @@ -65,11 +70,49 @@
+ + + +
+
+ + + +
+ + + +
+
+
+
-
-
- Se ancora non sei stato invitato: -
+
+
Se ancora non sei stato invitato:

1️⃣ 👉🏻 Entra nei gruppi Territoriali su Telegram:
@@ -86,14 +129,17 @@

- 2️⃣ 👉🏻 sul post del canale fissato in alto, troverai tutte le info sul - progetto e su come entrare nel gruppo della tua provincia.
- Potrai cosi richiedere il link una volta entrato nella chat di - gruppo.
+ 2️⃣ 👉🏻 sul post del canale fissato in alto, troverai tutte le info sul progetto e su come entrare nel gruppo + della tua provincia.
+ Potrai cosi richiedere il link una volta entrato nella chat di gruppo.
- + {{ $t('reg.page_title') }} @@ -109,31 +155,22 @@ icon="fab fa-telegram" size="md" color="primary" - :href=" - invited - ? tools.getLinkBotTelegram(invited, regexpire) - : `/bot` - " + :href="invited ? tools.getLinkBotTelegram(invited, regexpire) : `/bot`" :label="$t('reg.bytelegram')" > - Consigliato -
-
+
+

se non hai Telegram puoi registrarti con solo l'email ma - non potrai contattare gli iscritti. + non potrai contattare gli iscritti.
-
+
Registrati
- + diff --git a/src/components/CSendCoins/CSendCoins.ts b/src/components/CSendCoins/CSendCoins.ts index b7185eea..b2ac7e54 100755 --- a/src/components/CSendCoins/CSendCoins.ts +++ b/src/components/CSendCoins/CSendCoins.ts @@ -297,7 +297,6 @@ export default defineComponent({ await aggiorna() showpage.value = true - loading.value = false } @@ -305,6 +304,8 @@ export default defineComponent({ console.log('group', props.to_group) bothcircuits.value = userStore.getMyCircuitsInCommonByGroup(props.to_group) + console.log('bothcircuits', bothcircuits.value) + if (props.circuitname) { circuitsel.value = props.circuitname } else { @@ -318,6 +319,7 @@ export default defineComponent({ showpage.value = true } + if (props.to_contocom) { bothcircuits.value = userStore.getMyCircuits() diff --git a/src/components/MyHeader/MyHeader.vue b/src/components/MyHeader/MyHeader.vue index 45d184a2..3e5add29 100755 --- a/src/components/MyHeader/MyHeader.vue +++ b/src/components/MyHeader/MyHeader.vue @@ -125,7 +125,7 @@ - diff --git a/src/components/logo/logo.ts b/src/components/logo/logo.ts index ba473878..1a421d23 100755 --- a/src/components/logo/logo.ts +++ b/src/components/logo/logo.ts @@ -16,12 +16,14 @@ export default defineComponent({ }, setup() { + const { t } = useI18n() + function logoimg() { return `${tools.getimglogo()}` } function logoalt() { - const { t } = useI18n(); + return t('ws.sitename') } diff --git a/src/db/lang/ws_it.js b/src/db/lang/ws_it.js index 8e3eba27..9cd59a3d 100755 --- a/src/db/lang/ws_it.js +++ b/src/db/lang/ws_it.js @@ -1,9 +1,9 @@ const msg_website_it = { ws: { - sitename: 'Gruppo Macro', - siteshortname: 'Gruppo Macro', - description: '', - keywords: '', + sitename: 'Riso', + siteshortname: 'RISO', + description: 'Siamo la Rete Italiana di Scambio Orizzontale, abbiamo creato questa piattaforma per metterla al servizio di chi vuole riscoprire il valore della condivisione e della cooperazione. Valori semplici e profondi che ci aiutano a ritrovare il Senso della Vita, perduto in questa società consumista, e riporti quei Sani Pricìpi Naturali ed Umani di Fratellanza che intere popolazioni antiche conoscevano bene.', + keywords: 'riso, piattaforma di scambio, rete italiana scambio orizzontale, riso app, riso piattaforma, scambio e baratto, momenta RIS', }, hours: { descr: 'Descrizione', @@ -16,20 +16,29 @@ const msg_website_it = { pages: { home: 'Home', profile: 'Profilo', - install_site: 'Installa Sito', profile2: 'ProfiloU', mypage2: 'mypage2', myservice2: 'myservice2', myhosps2: 'myhosps2', mygood2: 'mygood2', - catalogo: 'Catalogo', fundraising: 'Sostieni il Progetto', notifs: 'Configura le Notifiche', unsubscribe: 'Disiscriviti', - unsubscribe_user: 'Disiscriviti User', test: 'Test', projects: 'Progetti', report: 'Report Ore', + producer: 'Produttore', + orderinfo: 'Ordini Effettuati', + products: 'Prodotti', + productslist: 'Lista Prodotti', + collabora: 'Collabora', + storehouses: 'Magazzino', + departments: 'Uffici', + orders: 'Ordini Ricevuti', + orders2: 'Ordini Ricevuti', + sharewithus: 'Condividi con Noi', + checkout: 'Carrello', + payment: 'Pagamenti', regok: 'Registrazione Confermata', presentazione: 'Presentazione', presentazione2: 'Presentazione', @@ -80,6 +89,9 @@ const msg_website_it = { projectsShared: 'Condivisi da me', myprojects: 'Privati', favproj: 'Favoriti', + admin_ecommerce: 'ECommerce', + ecommerce: 'Prodotti', + ecommerce_menu: 'ECommerce1', hours: 'Ore', department: 'Uffici', title: 'Titolo', @@ -109,9 +121,15 @@ const msg_website_it = { only_residenti: 'Solo Residenti', only_consiglio: 'Solo Consiglieri', color: 'Colore', + mainMenu: 'Menu Principale', + subtitle: 'Sottotitolo', + lang: 'Lingua', + keywords: 'Parole Chiave', + desctiption: 'Descrizione', + heightimg: 'Altezza Immagine', }, msg: { - myAppName: 'Più che Buono', + myAppName: 'Riso', myAppDescription: 'Il primo Vero Social Libero, Equo e Solidale, dove Vive Consapevolezza e Aiuto Comunitario. Gratuito', underconstruction: 'App in costruzione...', myDescriz: '', diff --git a/src/db/static_data.ts b/src/db/static_data.ts index a2cc7074..b8e31a9f 100755 --- a/src/db/static_data.ts +++ b/src/db/static_data.ts @@ -1,6 +1,6 @@ -/* GRUPPOMACRO APP +/* RISO APP */ -import { +import type { IListRoutes, ILang, IPreloadImages, @@ -68,6 +68,39 @@ function getDynamicPages(site: ISites): IListRoutes[] { inmenu: false, infooter: false, }, + { + active: true, + order: 12, + path: '/goods', + materialIcon: 'fas fa-tshirt', + name: 'mypages.goods', + component: () => import('@src/root/goods/goods.vue'), + meta: { requiresAuth: true }, + inmenu: true, + infooter: true, + }, + { + active: true, + order: 15, + path: '/services', + materialIcon: 'fas fa-house-user', + name: 'mypages.services', + component: () => import('@src/root/services/services.vue'), + meta: { requiresAuth: true }, + inmenu: true, + infooter: true, + }, + { + active: true, + order: 15, + path: '/activities', + materialIcon: 'fas fa-house-user', + name: 'mypages.activities', + component: () => import('@src/root/activities/activities.vue'), + meta: { requiresAuth: true }, + inmenu: false, + infooter: false, + }, { active: true, order: 15, @@ -79,6 +112,17 @@ function getDynamicPages(site: ISites): IListRoutes[] { inmenu: false, infooter: false, }, + { + active: true, + order: 15, + path: '/hosps', + materialIcon: 'fas fa-bed', + name: 'mypages.hosp', + component: () => import('@src/root/hosp/hosp.vue'), + meta: { requiresAuth: true }, + inmenu: true, + infooter: true, + }, { active: site.confpages && site.confpages.enableCircuits, order: 16, @@ -91,7 +135,7 @@ function getDynamicPages(site: ISites): IListRoutes[] { infooter: true, }, { - active: site.confpages && site.confpages.enableEvents, + active: true, order: 20, path: '/events', materialIcon: 'fas fa-bullhorn', @@ -113,7 +157,7 @@ function getDynamicPages(site: ISites): IListRoutes[] { infooter: false, }, { - active: site.confpages && site.confpages.showProfile, + active: true, order: 120, path: '/myprofile', materialIcon: 'fas fa-user', @@ -124,7 +168,7 @@ function getDynamicPages(site: ISites): IListRoutes[] { infooter: true, }, { - active: site.confpages && site.confpages.showProfile, + active: true, order: 120, path: '/editprofile', materialIcon: 'fas fa-user', @@ -135,7 +179,7 @@ function getDynamicPages(site: ISites): IListRoutes[] { infooter: false, }, { - active: site.confpages && site.confpages.showiscrittiMenu, + active: true, order: 130, path: '/friends', materialIcon: 'fas fa-user-friends', @@ -230,6 +274,16 @@ function getDynamicPages(site: ISites): IListRoutes[] { inmenu: false, infooter: false, }, + { + active: true, + order: 150, + path: '/sostieniilprogetto', + materialIcon: 'fas fa-hand-holding-heart', + name: 'pages.fundraising', + component: () => import('@src/root/fundraising/fundraising.vue'), + inmenu: false, + infooter: false, + }, { active: true, order: 80, @@ -248,7 +302,7 @@ function getDynamicPages(site: ISites): IListRoutes[] { export function firstimagehome() { - let img = 'statics/images/background.jpg' + const img = 'statics/images/background.jpg' return img } diff --git a/src/model/GlobalStore.ts b/src/model/GlobalStore.ts index a21043aa..2dea3795 100755 --- a/src/model/GlobalStore.ts +++ b/src/model/GlobalStore.ts @@ -40,6 +40,7 @@ export interface INotData { lastsonline?: IUserFields[] lastssharedlink?: IUserFields[] diffusorilist?: IUserFields[] + listlinksreg?: IUserFields[] receiveRislist?: IUserFields[] receiveRislistgroup?: IMyGroup[] strettelist?: IUserFields[] diff --git a/src/model/UserStore.ts b/src/model/UserStore.ts index 000debc8..f93562f3 100755 --- a/src/model/UserStore.ts +++ b/src/model/UserStore.ts @@ -151,6 +151,7 @@ export interface IUserProfile { mycircuits: IMyCircuit[] last_circuitpath: string lastdate_reqRis?: Date + lastdate_LinkReg?: Date userstoverify: IFriends[] manage_mygroups: IMyGroup[] notifs: IUserNotifType[] diff --git a/src/statics/lang/it.js b/src/statics/lang/it.js index 0c500b2e..a1c16126 100755 --- a/src/statics/lang/it.js +++ b/src/statics/lang/it.js @@ -1463,6 +1463,7 @@ const msg_it = { iscritti: 'iscritti trovati', addtothereceiverlist: 'Aggiungiti alla Lista dei Riceventi', coins_requestedris: 'Il tuo profilo {username} è ora visibile dalla "lista dei Riceventi di oggi".', + listlinkreg: 'Il tuo profilo {username} è ora visibile dalla "lista degli invitanti di oggi".', coins_requestedrisgroup: 'Il Conto dell\'Organizzazione {groupname} sarà visibile sulla lista dei riceventi per 8 ore. Fai cliccare \'Invia RIS a..\' a chi ti deve inviare i RIS.', lista_ricev_title: 'Questa è la lista degli Utenti che hanno cliccato su "Ricevi RIS" nelle ultime 8 ore', info: 'Informazioni su questo Circuito', diff --git a/src/store/Modules/costanti.ts b/src/store/Modules/costanti.ts index 4b36f083..1ba92ba0 100755 --- a/src/store/Modules/costanti.ts +++ b/src/store/Modules/costanti.ts @@ -60,6 +60,7 @@ export const costanti = { ACTIONTYPE: { NONE: 0, SEND_RIS: 1, + LINK_REG: 2, }, Lang: { diff --git a/src/store/Modules/tools.ts b/src/store/Modules/tools.ts index 58c9a46a..e1c1b9d0 100644 --- a/src/store/Modules/tools.ts +++ b/src/store/Modules/tools.ts @@ -8002,61 +8002,77 @@ export const tools = { return arr1.some((item: any) => arr2.includes(item)) }, - // Function to return commonElements - getCommon(arr1: any, arr2: any, field: string): any[] { - // @ts-ignore - arr1.sort((a: any, b: any) => (a[field] > b[field]) - (a[field] < b[field])) // Sort both the arrays - // @ts-ignore - arr2.sort((a: any, b: any) => (a[field] > b[field]) - (a[field] < b[field])) + // Function to return common elements between two arrays + getCommon(arr1: any[], arr2: any[], field1: string, field2: string): any[] { + // Assicurati che gli array non siano null o undefined + if (!Array.isArray(arr1) || !Array.isArray(arr2)) { + console.error("Entrambi gli input devono essere array."); + return []; + } - // console.log('arr1', arr1) - // console.log('arr2', arr2) - const common = [] // Array to contain common elements - let i = 0, j = 0 // i points to arr1 and j to arr2 - // Break if one of them runs out + // Ordina entrambi gli array in base ai campi specificati + arr1.sort((a, b) => (a[field1] > b[field1] ? 1 : a[field1] < b[field1] ? -1 : 0)); + arr2.sort((a, b) => (a[field2] > b[field2] ? 1 : a[field2] < b[field2] ? -1 : 0)); + + const common: any[] = []; // Array per contenere gli elementi comuni + let i = 0, j = 0; // Indici per iterare sugli array + + // Itera finché non si esaurisce uno dei due array while (i < arr1.length && j < arr2.length) { + const value1 = arr1[i][field1]; + const value2 = arr2[j][field2]; - if (arr1[i][field] == arr2[j][field]) { // If both are same, add it to result - common.push(arr1[i][field]) - i++ - j++ - } else if (arr1[i][field] < arr2[j][field]) { // Increment the smaller value so that - i++ // it could be matched with the larger - } // element - else { - j++ + if (value1 === value2) { + // Se i valori sono uguali, aggiungi l'elemento al risultato + common.push(value1); + i++; + j++; + } else if (value1 < value2) { + // Incrementa l'indice dell'array con il valore minore + i++; + } else { + j++; } } - return common + return common; }, + // Function to return commonElements - getCommonAllRecord(arr1: any, arr2: any, field: string): any[] { - // @ts-ignore - arr1.sort((a: any, b: any) => (a[field] > b[field]) - (a[field] < b[field])) // Sort both the arrays - // @ts-ignore - arr2.sort((a: any, b: any) => (a[field] > b[field]) - (a[field] < b[field])) + // Function to return common objects between two arrays based on a specific field + getCommonAllRecord(arr1: any[], arr2: any[], field: string): any[] { + // Assicurati che gli array non siano null o undefined + if (!Array.isArray(arr1) || !Array.isArray(arr2)) { + console.error("Entrambi gli input devono essere array."); + return []; + } - // console.log('arr1', arr1) - // console.log('arr2', arr2) - const common = [] // Array to contain common elements - let i = 0, j = 0 // i points to arr1 and j to arr2 - // Break if one of them runs out + // Ordina entrambi gli array in base al campo specificato + arr1.sort((a, b) => (a[field] > b[field] ? 1 : a[field] < b[field] ? -1 : 0)); + arr2.sort((a, b) => (a[field] > b[field] ? 1 : a[field] < b[field] ? -1 : 0)); + + const common: any[] = []; // Array per contenere gli oggetti comuni + let i = 0, j = 0; // Indici per iterare sugli array + + // Itera finché non si esaurisce uno dei due array while (i < arr1.length && j < arr2.length) { + const value1 = arr1[i][field]; + const value2 = arr2[j][field]; - if (arr1[i][field] == arr2[j][field]) { // If both are same, add it to result - common.push(arr1[i]) - i++ - j++ - } else if (arr1[i][field] < arr2[j][field]) { // Increment the smaller value so that - i++ // it could be matched with the larger - } // element - else { - j++ + if (value1 === value2) { + // Se i valori sono uguali, aggiungi l'intero oggetto di arr1 al risultato + common.push(arr1[i]); + i++; + j++; + } else if (value1 < value2) { + // Incrementa l'indice dell'array con il valore minore + i++; + } else { + j++; } } - return common + return common; }, isTypeByRecMov(rec: IMovVisu) { @@ -8439,6 +8455,23 @@ export const tools = { }, + async addToTemporaryLinkReg(t: any) { + const userStore = useUserStore() + + const username = userStore.my.username + + return await userStore.seListLinkReg(username, '') + .then((data) => { + if (data.code === serv_constants.RIS_CODE_OK) { + return { msg: t('circuit.listlinkreg', { username }), ris: true } + } else { + return { msg: t('db.recfailed'), ris: false } + } + + }) + + }, + async receiveRisGroup(groupname: string, $q: any, t: any) { const userStore = useUserStore() @@ -9499,14 +9532,14 @@ export const tools = { rec.testo_right = tools.resetIText(rec?.testo_right) rec.testo_bottom = tools.resetIText(rec?.testo_bottom) - rec.dimensioni = {pagina: null, riga: null, scheda_prodotto: {}, immagine_prodotto: {}} + rec.dimensioni = { pagina: null, riga: null, scheda_prodotto: {}, immagine_prodotto: {} } rec.dimensioni.pagina = tools.resetRecIPagina({}) rec.testo_right_attaccato = tools.resetIText({}) rec.testo_right = tools.resetIText({}) rec.testo_bottom = tools.resetIText({}) return rec -}, + }, resetIBorder(rec: IBorder | null) { if (!rec) { @@ -9777,7 +9810,7 @@ export const tools = { keycookie: '', addall: true, arrvalue: [], - filter: () => {}, + filter: () => { }, useinput: false, icon: 'fas fa-user' }] diff --git a/src/store/UserStore.ts b/src/store/UserStore.ts index d09934dd..175fc809 100755 --- a/src/store/UserStore.ts +++ b/src/store/UserStore.ts @@ -86,6 +86,7 @@ export const DefaultUser: IUserFields = { mygroups: [], mycircuits: [], last_circuitpath: '', + lastdate_LinkReg: tools.getLastDateReadReset(), lastdate_reqRis: tools.getLastDateReadReset(), manage_mygroups: [], userstoverify: [], @@ -550,20 +551,10 @@ export const useUserStore = defineStore('UserStore', { }, - getMyCircuitsInCommonByUser(user: IUserFields): any[] { - let arrout = [] + addarrfinale(arrout: any): any[] { let arrfinale = [] - let vuoto = false - const circuitStore = useCircuitStore() - if (!this.my.profile.mycircuits || (!user || !user.profile || !user.profile.mycircuits)) - vuoto = true // ok - else - arrout = tools.getCommon([...this.my.profile.mycircuits], [...user.profile.mycircuits], 'circuitname') - - - // controlla che il circuito sia Abilitato e Territoriale ! for (const circuitname of arrout) { const circuit = circuitStore.getCircuitByName(circuitname) @@ -580,22 +571,30 @@ export const useUserStore = defineStore('UserStore', { } } - // se non ho neanche 1 circuito in comune, metto il mio preferito - /*if (arrfinale.length <= 0) { - const circuit = circuitStore.getCircuitByProvince(this.my.profile.resid_province) - if (circuit) - arrfinale.push(circuit.name) - else { - if (this.my.profile.mycircuits.length > 0) { - arrfinale.push(this.my.profile.mycircuits[0].circuitname) - } - } - } else { - } */ - - // console.log('arrout', arrfinale) - return arrfinale + + }, + + getMyCircuitsInCommonByUser(user: IUserFields): any[] { + let arrout = [] + let vuoto = false + + if (!this.my.profile.mycircuits || (!user || !user.profile || !user.profile.mycircuits)) + vuoto = true // ok + else + arrout = tools.getCommon([...this.my.profile.mycircuits], [...user.profile.mycircuits], 'circuitname', 'circuitname') + + return this.addarrfinale(arrout) + }, + + getMyCircuitsInCommonByGroup(group: IMyGroup): any[] { + console.log('this.my.profile.mycircuits', this.my.profile.mycircuits) + + if (!this.my.profile.mycircuits || (!group || !group.mycircuits)) + return [] + const arrout = tools.getCommon([...this.my.profile.mycircuits], [...group.mycircuits], 'circuitname', 'name') + + return this.addarrfinale(arrout) }, getMyCircuits(): any[] { @@ -605,12 +604,6 @@ export const useUserStore = defineStore('UserStore', { return this.my.profile.mycircuits.map(item => item.circuitname) }, - getMyCircuitsInCommonByGroup(group: IMyGroup): any[] { - - if (!this.my.profile.mycircuits || (!group || !group.mycircuits)) - return [] - return tools.getCommon([...this.my.profile.mycircuits], [...group.mycircuits], 'circuitname') - }, getMyHandshakeInCommon(myuser: IUserFields): any[] { @@ -1727,6 +1720,21 @@ export const useUserStore = defineStore('UserStore', { return {} }) + }, + async seListLinkReg(username: string, groupname: string) { + const data = { + username, + groupname, + } + + return Api.SendReq('/users/listlinkreg', 'POST', data) + .then((ris) => { + console.log('out:', ris) + return ris.data + }).catch((error) => { + return {} + }) + }, async loadGroup(groupname: string, idnotif: string) { diff --git a/yarn.lock b/yarn.lock index a59f9c2b..a8ce729b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -914,10 +914,10 @@ resolved "https://registry.yarnpkg.com/@bufbuild/protobuf/-/protobuf-2.2.3.tgz#9cd136f6b687e63e9b517b3a54211ece942897ee" integrity sha512-tFQoXHJdkEOSwj5tRIZSPNUuXK3RaR7T1nUrPgbYX1pUbvqqaaZAsfo+NXBPsz5rZMSKVFrgK1WL8Q/MSLvprg== -"@cubejs-client/core@^1.2.19": - version "1.2.19" - resolved "https://registry.yarnpkg.com/@cubejs-client/core/-/core-1.2.19.tgz#4e1ef4d1553006f60694b22e39112b73af22727b" - integrity sha512-hXnK/Xvrov5+qo30NqbM/wt3cuJPZgOlZ49u4nznc8MXY7fu/DWw2T3D2gAHjgncX8+By6pAyFQeg4bMF/GSjw== +"@cubejs-client/core@^1.2.26": + version "1.2.26" + resolved "https://registry.yarnpkg.com/@cubejs-client/core/-/core-1.2.26.tgz#7cdf41a0a5b3e8122c15661bd5254d699adbe6fc" + integrity sha512-WPZqzQDkuC6x5b7jLiaQYfhc4p6zftbE8SdUUUOisX0YTKd4zbo16AllZxf27bEBM21zM2QzqNDR0BsGcjxXYg== dependencies: "@babel/runtime" "^7.1.2" core-js "^3.6.5" @@ -1115,10 +1115,10 @@ resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.21.0.tgz#4303ef4e07226d87c395b8fad5278763e9c15c08" integrity sha512-BqStZ3HX8Yz6LvsF5ByXYrtigrV5AXADWLAGc7PH/1SxOb7/FIYYMszZZWiUou/GB9P2lXWk2SV4d+Z8h0nknw== -"@eslint/js@^9.22.0": - version "9.22.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.22.0.tgz#4ff53649ded7cbce90b444b494c234137fa1aa3d" - integrity sha512-vLFajx9o8d1/oL2ZkpMYbkLv8nDB6yaIwFNt7nI4+I80U/z03SxmfOMsLbvWr3p7C+Wnoh//aOu2pQW8cS0HCQ== +"@eslint/js@^9.23.0": + version "9.23.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.23.0.tgz#c09ded4f3dc63b40b933bcaeb853fceddb64da30" + integrity sha512-35MJ8vCPU0ZMxo7zfev2pypqTwWTofFZO6m4KAtdoFhRpLJUpHTZZ+KB3C7Hb1d7bULYwO4lJXGCi5Se+8OMbw== "@eslint/object-schema@^2.1.6": version "2.1.6" @@ -1166,13 +1166,13 @@ resolved "https://registry.yarnpkg.com/@inquirer/figures/-/figures-1.0.10.tgz#e3676a51c9c51aaabcd6ba18a28e82b98417db37" integrity sha512-Ey6176gZmeqZuY/W/nZiUyvmb1/qInjcpiZjXWi6nON+nxJpD1bxtSoBxNliGISae32n6OwbY+TSXPZ1CfS4bw== -"@intlify/bundle-utils@^10.0.0": - version "10.0.0" - resolved "https://registry.yarnpkg.com/@intlify/bundle-utils/-/bundle-utils-10.0.0.tgz#9874a1d753072f0afc5560b888b424fa80fb7db1" - integrity sha512-BR5yLOkF2dzrARTbAg7RGAIPcx9Aark7p1K/0O285F7rfzso9j2dsa+S4dA67clZ0rToZ10NSSTfbyUptVu7Bg== +"@intlify/bundle-utils@^10.0.1": + version "10.0.1" + resolved "https://registry.yarnpkg.com/@intlify/bundle-utils/-/bundle-utils-10.0.1.tgz#6416e1c327bcc3b3579d803dc9bbe0d30ec0b012" + integrity sha512-WkaXfSevtpgtUR4t8K2M6lbR7g03mtOxFeh+vXp5KExvPqS12ppaRj1QxzwRuRI5VUto54A22BjKoBMLyHILWQ== dependencies: - "@intlify/message-compiler" next - "@intlify/shared" next + "@intlify/message-compiler" "^11.1.2" + "@intlify/shared" "^11.1.2" acorn "^8.8.2" escodegen "^2.1.0" estree-walker "^2.0.2" @@ -1205,7 +1205,7 @@ "@intlify/shared" "10.0.5" source-map-js "^1.0.2" -"@intlify/message-compiler@11.1.2": +"@intlify/message-compiler@11.1.2", "@intlify/message-compiler@^11.1.2": version "11.1.2" resolved "https://registry.yarnpkg.com/@intlify/message-compiler/-/message-compiler-11.1.2.tgz#711af9421fa8c0339501eb67fa90ebe00cbd3725" integrity sha512-T/xbNDzi+Yv0Qn2Dfz2CWCAJiwNgU5d95EhhAEf4YmOgjCKktpfpiUSmLcBvK1CtLpPQ85AMMQk/2NCcXnNj1g== @@ -1213,42 +1213,24 @@ "@intlify/shared" "11.1.2" source-map-js "^1.0.2" -"@intlify/message-compiler@next": - version "11.0.0-rc.1" - resolved "https://registry.yarnpkg.com/@intlify/message-compiler/-/message-compiler-11.0.0-rc.1.tgz#d807b5de491970527872959749ebebae7f000f6f" - integrity sha512-TGw2uBfuTFTegZf/BHtUQBEKxl7Q/dVGLoqRIdw8lFsp9g/53sYn5iD+0HxIzdYjbWL6BTJMXCPUHp9PxDTRPw== - dependencies: - "@intlify/shared" "11.0.0-rc.1" - source-map-js "^1.0.2" - "@intlify/shared@10.0.5", "@intlify/shared@^10.0.0": version "10.0.5" resolved "https://registry.yarnpkg.com/@intlify/shared/-/shared-10.0.5.tgz#1b46ca8b541f03508fe28da8f34e4bb85506d6bc" integrity sha512-bmsP4L2HqBF6i6uaMqJMcFBONVjKt+siGluRq4Ca4C0q7W2eMaVZr8iCgF9dKbcVXutftkC7D6z2SaSMmLiDyA== -"@intlify/shared@11.0.0-rc.1", "@intlify/shared@next": - version "11.0.0-rc.1" - resolved "https://registry.yarnpkg.com/@intlify/shared/-/shared-11.0.0-rc.1.tgz#52a67aa12fccd9303027b48ebf017b75b7350283" - integrity sha512-8tR1xe7ZEbkabTuE/tNhzpolygUn9OaYp9yuYAF4MgDNZg06C3Qny80bes2/e9/Wm3aVkPUlCw6WgU7mQd0yEg== - -"@intlify/shared@11.1.2": +"@intlify/shared@11.1.2", "@intlify/shared@^11.1.2": version "11.1.2" resolved "https://registry.yarnpkg.com/@intlify/shared/-/shared-11.1.2.tgz#d780bc8eb4e3c3ef8a3e45c421f0f5ecf59651f2" integrity sha512-dF2iMMy8P9uKVHV/20LA1ulFLL+MKSbfMiixSmn6fpwqzvix38OIc7ebgnFbBqElvghZCW9ACtzKTGKsTGTWGA== -"@intlify/shared@latest": - version "11.1.1" - resolved "https://registry.yarnpkg.com/@intlify/shared/-/shared-11.1.1.tgz#7cd50bf4dd5162a59d2e27aa1a03b4b68275dfeb" - integrity sha512-2kGiWoXaeV8HZlhU/Nml12oTbhv7j2ufsJ5vQaa0VTjzUmZVdd/nmKFRAOJ/FtjO90Qba5AnZDwsrY7ZND5udA== - -"@intlify/unplugin-vue-i18n@^6.0.3": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@intlify/unplugin-vue-i18n/-/unplugin-vue-i18n-6.0.3.tgz#576a5698f1cb5766760cdc08edbad90deb85268b" - integrity sha512-9ZDjBlhUHtgjRl23TVcgfJttgu8cNepwVhWvOv3mUMRDAhjW0pur1mWKEUKr1I8PNwE4Gvv2IQ1xcl4RL0nG0g== +"@intlify/unplugin-vue-i18n@^6.0.5": + version "6.0.5" + resolved "https://registry.yarnpkg.com/@intlify/unplugin-vue-i18n/-/unplugin-vue-i18n-6.0.5.tgz#d09aa6f969726c51879572af53a9f1b135da29c5" + integrity sha512-0MKaYhLvM46Mtm+OArkK75ztmqaFfhIvnm5mg8XKqCPAKVAK98o+8tB6gUQFkKrF5PMYsNXvyMJCi40cRCDJbA== dependencies: "@eslint-community/eslint-utils" "^4.4.0" - "@intlify/bundle-utils" "^10.0.0" - "@intlify/shared" latest + "@intlify/bundle-utils" "^10.0.1" + "@intlify/shared" "^11.1.2" "@intlify/vue-i18n-extensions" "^8.0.0" "@rollup/pluginutils" "^5.1.0" "@typescript-eslint/scope-manager" "^8.13.0" @@ -1650,100 +1632,101 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" -"@parcel/bundler-default@2.13.3": - version "2.13.3" - resolved "https://registry.yarnpkg.com/@parcel/bundler-default/-/bundler-default-2.13.3.tgz#3a7b88f473b46321532dc0f187667f8e34f0722d" - integrity sha512-mOuWeth0bZzRv1b9Lrvydis/hAzJyePy0gwa0tix3/zyYBvw0JY+xkXVR4qKyD/blc1Ra2qOlfI2uD3ucnsdXA== +"@parcel/bundler-default@2.14.1": + version "2.14.1" + resolved "https://registry.yarnpkg.com/@parcel/bundler-default/-/bundler-default-2.14.1.tgz#16aef2901a9c3c3b8706b08e7fc7368e58ec9bea" + integrity sha512-xFS97cO9TdQgNf1M7N1c5M8Z/kWiIC91ufwabnRWFt5NTaT6NCXusOKcqw/kpJOBKgZcO1kjNvQ95HE3EG85rw== dependencies: - "@parcel/diagnostic" "2.13.3" - "@parcel/graph" "3.3.3" - "@parcel/plugin" "2.13.3" - "@parcel/rust" "2.13.3" - "@parcel/utils" "2.13.3" + "@parcel/diagnostic" "2.14.1" + "@parcel/graph" "3.4.1" + "@parcel/plugin" "2.14.1" + "@parcel/rust" "2.14.1" + "@parcel/utils" "2.14.1" nullthrows "^1.1.1" -"@parcel/cache@2.13.3": - version "2.13.3" - resolved "https://registry.yarnpkg.com/@parcel/cache/-/cache-2.13.3.tgz#ea23b8cc3d30ee7b7e735e4c58dc5294d5bdb437" - integrity sha512-Vz5+K5uCt9mcuQAMDo0JdbPYDmVdB8Nvu/A2vTEK2rqZPxvoOTczKeMBA4JqzKqGURHPRLaJCvuR8nDG+jhK9A== +"@parcel/cache@2.14.1": + version "2.14.1" + resolved "https://registry.yarnpkg.com/@parcel/cache/-/cache-2.14.1.tgz#a7f3c3caaaa3213e40be8aa8ad199a5e0c26c301" + integrity sha512-oFJfIK6QfxY35XYsDaOyFWH3eKEbzU4CXTsUVAkpH1PbX0DTko3eZ4D+xWapRRaAQIMfL+xfUWmsL4njYCQqZQ== dependencies: - "@parcel/fs" "2.13.3" - "@parcel/logger" "2.13.3" - "@parcel/utils" "2.13.3" + "@parcel/fs" "2.14.1" + "@parcel/logger" "2.14.1" + "@parcel/utils" "2.14.1" lmdb "2.8.5" -"@parcel/codeframe@2.13.3": - version "2.13.3" - resolved "https://registry.yarnpkg.com/@parcel/codeframe/-/codeframe-2.13.3.tgz#1e3cc39f85948cc39e9f10584476ff13c0cd4f58" - integrity sha512-L/PQf+PT0xM8k9nc0B+PxxOYO2phQYnbuifu9o4pFRiqVmCtHztP+XMIvRJ2gOEXy3pgAImSPFVJ3xGxMFky4g== +"@parcel/codeframe@2.14.1": + version "2.14.1" + resolved "https://registry.yarnpkg.com/@parcel/codeframe/-/codeframe-2.14.1.tgz#b6f23243350832987d12be191844840fa89d8bd3" + integrity sha512-n5IdtgxuukSTJ5/fq/69S5Rm9KBSg/dhpE4oRkyUEtkgEwTLpG2c6rmYtWem1yGIc80Z4BRvP9vgmYAEHHXSwA== dependencies: chalk "^4.1.2" -"@parcel/compressor-raw@2.13.3": - version "2.13.3" - resolved "https://registry.yarnpkg.com/@parcel/compressor-raw/-/compressor-raw-2.13.3.tgz#7b479b0b42108433b1c48daa0dab6c6387b7be79" - integrity sha512-C6vjDlgTLjYc358i7LA/dqcL0XDQZ1IHXFw6hBaHHOfxPKW2T4bzUI6RURyToEK9Q1X7+ggDKqgdLxwp4veCFg== +"@parcel/compressor-raw@2.14.1": + version "2.14.1" + resolved "https://registry.yarnpkg.com/@parcel/compressor-raw/-/compressor-raw-2.14.1.tgz#bcec61e8f751bb12e8f6ebe02634f2986877a5cf" + integrity sha512-lo/MJIOaEhjhgC3H0eMvqWpd1J2CxTErIl7T4MIIwzgNBdXHJe39ErkiJYaelh/q15uQVnc5dXx3VSu/YgWDXg== dependencies: - "@parcel/plugin" "2.13.3" + "@parcel/plugin" "2.14.1" -"@parcel/config-default@2.13.3": - version "2.13.3" - resolved "https://registry.yarnpkg.com/@parcel/config-default/-/config-default-2.13.3.tgz#2d0498cf56cb162961e07b867d6f958f8aaaec64" - integrity sha512-WUsx83ic8DgLwwnL1Bua4lRgQqYjxiTT+DBxESGk1paNm1juWzyfPXEQDLXwiCTcWMQGiXQFQ8OuSISauVQ8dQ== +"@parcel/config-default@2.14.1": + version "2.14.1" + resolved "https://registry.yarnpkg.com/@parcel/config-default/-/config-default-2.14.1.tgz#70cb3d0198885edad959fbb69b8f51daaf3c7773" + integrity sha512-rM+SqYmgzrg59XH8c41fC6lggFWRYm1tQ/NvrLB4QuKzLqh2RSLa8rNkuR7bDGo1Bq7ore0WjjFDv87MXsWJkg== dependencies: - "@parcel/bundler-default" "2.13.3" - "@parcel/compressor-raw" "2.13.3" - "@parcel/namer-default" "2.13.3" - "@parcel/optimizer-css" "2.13.3" - "@parcel/optimizer-htmlnano" "2.13.3" - "@parcel/optimizer-image" "2.13.3" - "@parcel/optimizer-svgo" "2.13.3" - "@parcel/optimizer-swc" "2.13.3" - "@parcel/packager-css" "2.13.3" - "@parcel/packager-html" "2.13.3" - "@parcel/packager-js" "2.13.3" - "@parcel/packager-raw" "2.13.3" - "@parcel/packager-svg" "2.13.3" - "@parcel/packager-wasm" "2.13.3" - "@parcel/reporter-dev-server" "2.13.3" - "@parcel/resolver-default" "2.13.3" - "@parcel/runtime-browser-hmr" "2.13.3" - "@parcel/runtime-js" "2.13.3" - "@parcel/runtime-react-refresh" "2.13.3" - "@parcel/runtime-service-worker" "2.13.3" - "@parcel/transformer-babel" "2.13.3" - "@parcel/transformer-css" "2.13.3" - "@parcel/transformer-html" "2.13.3" - "@parcel/transformer-image" "2.13.3" - "@parcel/transformer-js" "2.13.3" - "@parcel/transformer-json" "2.13.3" - "@parcel/transformer-postcss" "2.13.3" - "@parcel/transformer-posthtml" "2.13.3" - "@parcel/transformer-raw" "2.13.3" - "@parcel/transformer-react-refresh-wrap" "2.13.3" - "@parcel/transformer-svg" "2.13.3" + "@parcel/bundler-default" "2.14.1" + "@parcel/compressor-raw" "2.14.1" + "@parcel/namer-default" "2.14.1" + "@parcel/optimizer-css" "2.14.1" + "@parcel/optimizer-htmlnano" "2.14.1" + "@parcel/optimizer-image" "2.14.1" + "@parcel/optimizer-svgo" "2.14.1" + "@parcel/optimizer-swc" "2.14.1" + "@parcel/packager-css" "2.14.1" + "@parcel/packager-html" "2.14.1" + "@parcel/packager-js" "2.14.1" + "@parcel/packager-raw" "2.14.1" + "@parcel/packager-svg" "2.14.1" + "@parcel/packager-wasm" "2.14.1" + "@parcel/reporter-dev-server" "2.14.1" + "@parcel/resolver-default" "2.14.1" + "@parcel/runtime-browser-hmr" "2.14.1" + "@parcel/runtime-js" "2.14.1" + "@parcel/runtime-rsc" "2.14.1" + "@parcel/runtime-service-worker" "2.14.1" + "@parcel/transformer-babel" "2.14.1" + "@parcel/transformer-css" "2.14.1" + "@parcel/transformer-html" "2.14.1" + "@parcel/transformer-image" "2.14.1" + "@parcel/transformer-js" "2.14.1" + "@parcel/transformer-json" "2.14.1" + "@parcel/transformer-node" "2.14.1" + "@parcel/transformer-postcss" "2.14.1" + "@parcel/transformer-posthtml" "2.14.1" + "@parcel/transformer-raw" "2.14.1" + "@parcel/transformer-react-refresh-wrap" "2.14.1" + "@parcel/transformer-svg" "2.14.1" -"@parcel/core@2.13.3": - version "2.13.3" - resolved "https://registry.yarnpkg.com/@parcel/core/-/core-2.13.3.tgz#d64ec42157a70df6a3674e98f52eb156a103985b" - integrity sha512-SRZFtqGiaKHlZ2YAvf+NHvBFWS3GnkBvJMfOJM7kxJRK3M1bhbwJa/GgSdzqro5UVf9Bfj6E+pkdrRQIOZ7jMQ== +"@parcel/core@2.14.1": + version "2.14.1" + resolved "https://registry.yarnpkg.com/@parcel/core/-/core-2.14.1.tgz#81d042d83cea51625e8e5fbb202b5af2eb855fce" + integrity sha512-vw7Uc2hZgXEDCHyPzeV+IPqC9mUtCbVSJ4lXP9Ri49mdLV7Hazb9iCN4mNld7sCMtG2f6fEqfwsD9r2zGyntgw== dependencies: "@mischnic/json-sourcemap" "^0.1.0" - "@parcel/cache" "2.13.3" - "@parcel/diagnostic" "2.13.3" - "@parcel/events" "2.13.3" - "@parcel/feature-flags" "2.13.3" - "@parcel/fs" "2.13.3" - "@parcel/graph" "3.3.3" - "@parcel/logger" "2.13.3" - "@parcel/package-manager" "2.13.3" - "@parcel/plugin" "2.13.3" - "@parcel/profiler" "2.13.3" - "@parcel/rust" "2.13.3" + "@parcel/cache" "2.14.1" + "@parcel/diagnostic" "2.14.1" + "@parcel/events" "2.14.1" + "@parcel/feature-flags" "2.14.1" + "@parcel/fs" "2.14.1" + "@parcel/graph" "3.4.1" + "@parcel/logger" "2.14.1" + "@parcel/package-manager" "2.14.1" + "@parcel/plugin" "2.14.1" + "@parcel/profiler" "2.14.1" + "@parcel/rust" "2.14.1" "@parcel/source-map" "^2.1.1" - "@parcel/types" "2.13.3" - "@parcel/utils" "2.13.3" - "@parcel/workers" "2.13.3" + "@parcel/types" "2.14.1" + "@parcel/utils" "2.14.1" + "@parcel/workers" "2.14.1" base-x "^3.0.8" browserslist "^4.6.6" clone "^2.1.1" @@ -1754,309 +1737,316 @@ nullthrows "^1.1.1" semver "^7.5.2" -"@parcel/diagnostic@2.13.3": - version "2.13.3" - resolved "https://registry.yarnpkg.com/@parcel/diagnostic/-/diagnostic-2.13.3.tgz#4bc00a915984f8e649a58641d639767d029f72d8" - integrity sha512-C70KXLBaXLJvr7XCEVu8m6TqNdw1gQLxqg5BQ8roR62R4vWWDnOq8PEksxDi4Y8Z/FF4i3Sapv6tRx9iBNxDEg== +"@parcel/diagnostic@2.14.1": + version "2.14.1" + resolved "https://registry.yarnpkg.com/@parcel/diagnostic/-/diagnostic-2.14.1.tgz#06c0542119fc0c09a62e3835c0450b5dea8aa510" + integrity sha512-1miPY3EFMlaRRXEEi9kqqVih8jxCIrmpeQTgnFcamX7TypAlGKaFjn0FTOYL1FXexVHETiVFzmNOWVe+EUJF6A== dependencies: "@mischnic/json-sourcemap" "^0.1.0" nullthrows "^1.1.1" -"@parcel/events@2.13.3": - version "2.13.3" - resolved "https://registry.yarnpkg.com/@parcel/events/-/events-2.13.3.tgz#068bdd9e1d40f88cb8110d06be2bd4d5fb23c2ad" - integrity sha512-ZkSHTTbD/E+53AjUzhAWTnMLnxLEU5yRw0H614CaruGh+GjgOIKyukGeToF5Gf/lvZ159VrJCGE0Z5EpgHVkuQ== +"@parcel/error-overlay@2.14.1": + version "2.14.1" + resolved "https://registry.yarnpkg.com/@parcel/error-overlay/-/error-overlay-2.14.1.tgz#4e9bddf2fe121219427d27ef33cc2554c8f5600f" + integrity sha512-9HyBBOjR+xp8OWSwOV0DRmWduKEtR+PKjdwc3+PIP9LQ4p9WL/uUcGG57LCdU4UKih8befCRN0qs7iMQU1OSxg== -"@parcel/feature-flags@2.13.3": - version "2.13.3" - resolved "https://registry.yarnpkg.com/@parcel/feature-flags/-/feature-flags-2.13.3.tgz#9664d46610a2744dd56677d26cf4fd45ab12928b" - integrity sha512-UZm14QpamDFoUut9YtCZSpG1HxPs07lUwUCpsAYL0PpxASD3oWJQxIJGfDZPa2272DarXDG9adTKrNXvkHZblw== +"@parcel/events@2.14.1": + version "2.14.1" + resolved "https://registry.yarnpkg.com/@parcel/events/-/events-2.14.1.tgz#99ef9a29be15dc4b0d6017fd089fa19cb687122c" + integrity sha512-DG4xxp1x/ky7aHbz2GpwPBAkbI4pTfEWGukXh6bTyp/8TJl6LHvQxZkNszBoOwPF+D9vKH+Cm1ZS+iLX1HCnaA== -"@parcel/fs@2.13.3": - version "2.13.3" - resolved "https://registry.yarnpkg.com/@parcel/fs/-/fs-2.13.3.tgz#166e7dcdd2afbab201aaf5839f69a8e853da66e0" - integrity sha512-+MPWAt0zr+TCDSlj1LvkORTjfB/BSffsE99A9AvScKytDSYYpY2s0t4vtV9unSh0FHMS2aBCZNJ4t7KL+DcPIg== +"@parcel/feature-flags@2.14.1": + version "2.14.1" + resolved "https://registry.yarnpkg.com/@parcel/feature-flags/-/feature-flags-2.14.1.tgz#9ab88680e162a7294faa6e939ce945dead6380f3" + integrity sha512-SiFWEONfIIM42+J4IFQnAgVOuqOPqZLc+6kHX8bmSBYAA6PVkwfjI8GVwcFm0qzo9HYylwuHwzrAdByv5FFodA== + +"@parcel/fs@2.14.1": + version "2.14.1" + resolved "https://registry.yarnpkg.com/@parcel/fs/-/fs-2.14.1.tgz#c77b54517af1547e0a1dd60ad0ff6466ffe00415" + integrity sha512-qLKjKdE+8d+HycrUSbWf2pLmfi2g4p23HkEMwxOPnbu+OQ9deyrODbfhMNVQNSGDztNDjw53YF4+c5Y+DCtXUw== dependencies: - "@parcel/feature-flags" "2.13.3" - "@parcel/rust" "2.13.3" - "@parcel/types-internal" "2.13.3" - "@parcel/utils" "2.13.3" + "@parcel/feature-flags" "2.14.1" + "@parcel/rust" "2.14.1" + "@parcel/types-internal" "2.14.1" + "@parcel/utils" "2.14.1" "@parcel/watcher" "^2.0.7" - "@parcel/workers" "2.13.3" + "@parcel/workers" "2.14.1" -"@parcel/graph@3.3.3": - version "3.3.3" - resolved "https://registry.yarnpkg.com/@parcel/graph/-/graph-3.3.3.tgz#9a48d22f8d6c1e961f2723d4d7343f5388b689bb" - integrity sha512-pxs4GauEdvCN8nRd6wG3st6LvpHske3GfqGwUSR0P0X0pBPI1/NicvXz6xzp3rgb9gPWfbKXeI/2IOTfIxxVfg== +"@parcel/graph@3.4.1": + version "3.4.1" + resolved "https://registry.yarnpkg.com/@parcel/graph/-/graph-3.4.1.tgz#a5044eef675a997ad952b4bf8ee06a1933bb867f" + integrity sha512-4kaHLJ0HfMo9OT3dEUlLLArMa3YYCYEDs7b1juXPUYS6VEPfxebdAw6gcF2KlC/TMUP7SbU9dsauPfOc1ttXcQ== dependencies: - "@parcel/feature-flags" "2.13.3" + "@parcel/feature-flags" "2.14.1" nullthrows "^1.1.1" -"@parcel/logger@2.13.3": - version "2.13.3" - resolved "https://registry.yarnpkg.com/@parcel/logger/-/logger-2.13.3.tgz#0c91bb7fefa37b5dccd5cdfcd30cf52f5c56a1d9" - integrity sha512-8YF/ZhsQgd7ohQ2vEqcMD1Ag9JlJULROWRPGgGYLGD+twuxAiSdiFBpN3f+j4gQN4PYaLaIS/SwUFx11J243fQ== +"@parcel/logger@2.14.1": + version "2.14.1" + resolved "https://registry.yarnpkg.com/@parcel/logger/-/logger-2.14.1.tgz#d6c0861abce104c82b89273e6d1ac123e540ffa2" + integrity sha512-jksQTCuVW7HWB75HShnliGs+lwbirv9ajCQtEwtOMFlZMCEplu0Pp6GxNG467r9EWzCf55yGwnZw7F6Fs1Oqgg== dependencies: - "@parcel/diagnostic" "2.13.3" - "@parcel/events" "2.13.3" + "@parcel/diagnostic" "2.14.1" + "@parcel/events" "2.14.1" -"@parcel/markdown-ansi@2.13.3": - version "2.13.3" - resolved "https://registry.yarnpkg.com/@parcel/markdown-ansi/-/markdown-ansi-2.13.3.tgz#05eec8407643d2c36f3511a37c38f08f7b236e24" - integrity sha512-B4rUdlNUulJs2xOQuDbN7Hq5a9roq8IZUcJ1vQ8PAv+zMGb7KCfqIIr/BSCDYGhayfAGBVWW8x55Kvrl1zrDYw== +"@parcel/markdown-ansi@2.14.1": + version "2.14.1" + resolved "https://registry.yarnpkg.com/@parcel/markdown-ansi/-/markdown-ansi-2.14.1.tgz#ccdb1a9572c379030d48f371637b7f92636d768a" + integrity sha512-cxeM6w9861HTMuxEhhPDznCwPd/MxbIJpqp5z9E8+L3Syso0qa7ot5z5Lm3DSfDVh0Dnpi7srC8QpJkOqCl4yw== dependencies: chalk "^4.1.2" -"@parcel/namer-default@2.13.3": - version "2.13.3" - resolved "https://registry.yarnpkg.com/@parcel/namer-default/-/namer-default-2.13.3.tgz#a77ce846de8203d2a4b1f93666520b0ac8a90865" - integrity sha512-A2a5A5fuyNcjSGOS0hPcdQmOE2kszZnLIXof7UMGNkNkeC62KAG8WcFZH5RNOY3LT5H773hq51zmc2Y2gE5Rnw== +"@parcel/namer-default@2.14.1": + version "2.14.1" + resolved "https://registry.yarnpkg.com/@parcel/namer-default/-/namer-default-2.14.1.tgz#0087b03660e325b126e4ba87345b908162e2d6d4" + integrity sha512-6Hq4TuQblYhqzpi7eVHLa2RJ0OGq5MiR6KofAwpz4gDF1H8UVR85KGzFLRRk73nAqMZi45Yqs8f4FHtTOJzksw== dependencies: - "@parcel/diagnostic" "2.13.3" - "@parcel/plugin" "2.13.3" + "@parcel/diagnostic" "2.14.1" + "@parcel/plugin" "2.14.1" nullthrows "^1.1.1" -"@parcel/node-resolver-core@3.4.3": - version "3.4.3" - resolved "https://registry.yarnpkg.com/@parcel/node-resolver-core/-/node-resolver-core-3.4.3.tgz#aa254b2f0ac9fd5790bfd353430f19ae3b0ee778" - integrity sha512-IEnMks49egEic1ITBp59VQyHzkSQUXqpU9hOHwqN3KoSTdZ6rEgrXcS3pa6tdXay4NYGlcZ88kFCE8i/xYoVCg== +"@parcel/node-resolver-core@3.5.1": + version "3.5.1" + resolved "https://registry.yarnpkg.com/@parcel/node-resolver-core/-/node-resolver-core-3.5.1.tgz#1081bc9e0ea3647728f80819573ce6418109bdb4" + integrity sha512-FiZUbTmEfoWIRKYmmx2baPlusIdW9gKPRowXp+YWb436aFxbk06rf8pS4uCkODN61RZEg6WPHOo0rLVcylbOSw== dependencies: "@mischnic/json-sourcemap" "^0.1.0" - "@parcel/diagnostic" "2.13.3" - "@parcel/fs" "2.13.3" - "@parcel/rust" "2.13.3" - "@parcel/utils" "2.13.3" + "@parcel/diagnostic" "2.14.1" + "@parcel/fs" "2.14.1" + "@parcel/rust" "2.14.1" + "@parcel/utils" "2.14.1" nullthrows "^1.1.1" semver "^7.5.2" -"@parcel/optimizer-css@2.13.3": - version "2.13.3" - resolved "https://registry.yarnpkg.com/@parcel/optimizer-css/-/optimizer-css-2.13.3.tgz#504f75cdfde89f2463d06a8d18fbf861b2a352af" - integrity sha512-A8o9IVCv919vhv69SkLmyW2WjJR5WZgcMqV6L1uiGF8i8z18myrMhrp2JuSHx29PRT9uNyzNC4Xrd4StYjIhJg== +"@parcel/optimizer-css@2.14.1": + version "2.14.1" + resolved "https://registry.yarnpkg.com/@parcel/optimizer-css/-/optimizer-css-2.14.1.tgz#227519d86ca2a38a78e8b0f8f4228fb73b06966c" + integrity sha512-uerUTAFzer23wDD+CeGDxRSpGJrpYNU7RIkvUKrWBaYPG2ztKQ4NWWZ7/xVL8EdU6TilRec6xihrONFUE1Pa3Q== dependencies: - "@parcel/diagnostic" "2.13.3" - "@parcel/plugin" "2.13.3" + "@parcel/diagnostic" "2.14.1" + "@parcel/plugin" "2.14.1" "@parcel/source-map" "^2.1.1" - "@parcel/utils" "2.13.3" + "@parcel/utils" "2.14.1" browserslist "^4.6.6" lightningcss "^1.22.1" nullthrows "^1.1.1" -"@parcel/optimizer-htmlnano@2.13.3": - version "2.13.3" - resolved "https://registry.yarnpkg.com/@parcel/optimizer-htmlnano/-/optimizer-htmlnano-2.13.3.tgz#eaf0c011806d9856a64d4a96e9a30c970e3e003d" - integrity sha512-K4Uvg0Sy2pECP7pdvvbud++F0pfcbNkq+IxTrgqBX5HJnLEmRZwgdvZEKF43oMEolclMnURMQRGjRplRaPdbXg== +"@parcel/optimizer-htmlnano@2.14.1": + version "2.14.1" + resolved "https://registry.yarnpkg.com/@parcel/optimizer-htmlnano/-/optimizer-htmlnano-2.14.1.tgz#51e77a568e354feec60b8a15f1552366bd1d19ba" + integrity sha512-m9qmJD1yC5/KfXz/6dk8QdVFug3iSXhkABIo51iPHezabRNKxBscQHvaYjRGptJdTgqe04vz8Wf1l4iLpKWM2w== dependencies: - "@parcel/diagnostic" "2.13.3" - "@parcel/plugin" "2.13.3" - "@parcel/utils" "2.13.3" + "@parcel/diagnostic" "2.14.1" + "@parcel/plugin" "2.14.1" + "@parcel/utils" "2.14.1" htmlnano "^2.0.0" nullthrows "^1.1.1" posthtml "^0.16.5" -"@parcel/optimizer-image@2.13.3": - version "2.13.3" - resolved "https://registry.yarnpkg.com/@parcel/optimizer-image/-/optimizer-image-2.13.3.tgz#7daac3ac2d13c769d84ee0d982132f86296fdde0" - integrity sha512-wlDUICA29J4UnqkKrWiyt68g1e85qfYhp4zJFcFJL0LX1qqh1QwsLUz3YJ+KlruoqPxJSFEC8ncBEKiVCsqhEQ== +"@parcel/optimizer-image@2.14.1": + version "2.14.1" + resolved "https://registry.yarnpkg.com/@parcel/optimizer-image/-/optimizer-image-2.14.1.tgz#680b3da05b7de6b129fc54ce954db39b94c0804e" + integrity sha512-Ut3LyQjh4bZw2sfS0gB2LaVo7cRYqXMb2UX3l8c57jZUfHjqG3eweiZtl7cM3sbOLjj7Z79BSj9JJ67OJS6ATQ== dependencies: - "@parcel/diagnostic" "2.13.3" - "@parcel/plugin" "2.13.3" - "@parcel/rust" "2.13.3" - "@parcel/utils" "2.13.3" - "@parcel/workers" "2.13.3" + "@parcel/diagnostic" "2.14.1" + "@parcel/plugin" "2.14.1" + "@parcel/rust" "2.14.1" + "@parcel/utils" "2.14.1" + "@parcel/workers" "2.14.1" -"@parcel/optimizer-svgo@2.13.3": - version "2.13.3" - resolved "https://registry.yarnpkg.com/@parcel/optimizer-svgo/-/optimizer-svgo-2.13.3.tgz#8afd39b8903bee52dd98ae349aca7e27e9fcdaa1" - integrity sha512-piIKxQKzhZK54dJR6yqIcq+urZmpsfgUpLCZT3cnWlX4ux5+S2iN66qqZBs0zVn+a58LcWcoP4Z9ieiJmpiu2w== +"@parcel/optimizer-svgo@2.14.1": + version "2.14.1" + resolved "https://registry.yarnpkg.com/@parcel/optimizer-svgo/-/optimizer-svgo-2.14.1.tgz#03035180c16c0b928218e5b587408be3d7dc1b0c" + integrity sha512-pMQ2vHLRO4eOUYzc1aNa+U3EET2CoXNP9eHzMEXD9ikbcuU699LWhQ9f0g94q/tCEPiDDU7fYFVRk5z9rYJ4xg== dependencies: - "@parcel/diagnostic" "2.13.3" - "@parcel/plugin" "2.13.3" - "@parcel/utils" "2.13.3" + "@parcel/diagnostic" "2.14.1" + "@parcel/plugin" "2.14.1" + "@parcel/utils" "2.14.1" -"@parcel/optimizer-swc@2.13.3": - version "2.13.3" - resolved "https://registry.yarnpkg.com/@parcel/optimizer-swc/-/optimizer-swc-2.13.3.tgz#0ec2a4b8fc87c758fed8aba3a9145d78ac0449e9" - integrity sha512-zNSq6oWqLlW8ksPIDjM0VgrK6ZAJbPQCDvs1V+p0oX3CzEe85lT5VkRpnfrN1+/vvEJNGL8e60efHKpI+rXGTA== +"@parcel/optimizer-swc@2.14.1": + version "2.14.1" + resolved "https://registry.yarnpkg.com/@parcel/optimizer-swc/-/optimizer-swc-2.14.1.tgz#d0968d59d9142fc8ebe299a35567430327e66fa2" + integrity sha512-oNtXoW/o9zWXhcoZ4taaIot3l5jSy9RzKXWzKLtrMHkljyifIcxJ7DfgMfr2v1ToCFYRitdtQ4s0Y9dDOvjlqw== dependencies: - "@parcel/diagnostic" "2.13.3" - "@parcel/plugin" "2.13.3" + "@parcel/diagnostic" "2.14.1" + "@parcel/plugin" "2.14.1" "@parcel/source-map" "^2.1.1" - "@parcel/utils" "2.13.3" - "@swc/core" "^1.7.26" + "@parcel/utils" "2.14.1" + "@swc/core" "^1.11.5" nullthrows "^1.1.1" -"@parcel/package-manager@2.13.3": - version "2.13.3" - resolved "https://registry.yarnpkg.com/@parcel/package-manager/-/package-manager-2.13.3.tgz#0106ca0f94f569c9fa00f538c5bba6e9ac6e9e37" - integrity sha512-FLNI5OrZxymGf/Yln0E/kjnGn5sdkQAxW7pQVdtuM+5VeN75yibJRjsSGv88PvJ+KvpD2ANgiIJo1RufmoPcww== +"@parcel/package-manager@2.14.1": + version "2.14.1" + resolved "https://registry.yarnpkg.com/@parcel/package-manager/-/package-manager-2.14.1.tgz#a2cb5a54f6127a2b45ed2e93734179d517dd0be6" + integrity sha512-zLjPJpKhj+3Yqy9HN1Kp7fTot2BqTG3wxFoVRI5vdKqMeC9PT+UexdctU0sx90aeXcs3dF6yl944nVPlMZW8qA== dependencies: - "@parcel/diagnostic" "2.13.3" - "@parcel/fs" "2.13.3" - "@parcel/logger" "2.13.3" - "@parcel/node-resolver-core" "3.4.3" - "@parcel/types" "2.13.3" - "@parcel/utils" "2.13.3" - "@parcel/workers" "2.13.3" - "@swc/core" "^1.7.26" + "@parcel/diagnostic" "2.14.1" + "@parcel/fs" "2.14.1" + "@parcel/logger" "2.14.1" + "@parcel/node-resolver-core" "3.5.1" + "@parcel/types" "2.14.1" + "@parcel/utils" "2.14.1" + "@parcel/workers" "2.14.1" + "@swc/core" "^1.11.5" semver "^7.5.2" -"@parcel/packager-css@2.13.3": - version "2.13.3" - resolved "https://registry.yarnpkg.com/@parcel/packager-css/-/packager-css-2.13.3.tgz#ee3c66884f1c7dc17489cefa63e03d5c57cf4bd7" - integrity sha512-ghDqRMtrUwaDERzFm9le0uz2PTeqqsjsW0ihQSZPSAptElRl9o5BR+XtMPv3r7Ui0evo+w35gD55oQCJ28vCig== +"@parcel/packager-css@2.14.1": + version "2.14.1" + resolved "https://registry.yarnpkg.com/@parcel/packager-css/-/packager-css-2.14.1.tgz#ac3413b5743c926db52e5cd9803a461e625b4a93" + integrity sha512-SUVnX8cFHApmU0xA4rard3h1gR4tN7MeB7w1JtO+BgTLdxHBAG/rzqh22T7pJuwc+XJ8x+8CSh1vYkrIuL9Dow== dependencies: - "@parcel/diagnostic" "2.13.3" - "@parcel/plugin" "2.13.3" + "@parcel/diagnostic" "2.14.1" + "@parcel/plugin" "2.14.1" "@parcel/source-map" "^2.1.1" - "@parcel/utils" "2.13.3" + "@parcel/utils" "2.14.1" lightningcss "^1.22.1" nullthrows "^1.1.1" -"@parcel/packager-html@2.13.3": - version "2.13.3" - resolved "https://registry.yarnpkg.com/@parcel/packager-html/-/packager-html-2.13.3.tgz#00c080d87cd47d77730b9000224acef864d17abe" - integrity sha512-jDLnKSA/EzVEZ3/aegXO3QJ/Ij732AgBBkIQfeC8tUoxwVz5b3HiPBAjVjcUSfZs7mdBSHO+ELWC3UD+HbsIrQ== +"@parcel/packager-html@2.14.1": + version "2.14.1" + resolved "https://registry.yarnpkg.com/@parcel/packager-html/-/packager-html-2.14.1.tgz#6ee2d604b21aea484d4c2f8a6ff34f89a7b44fab" + integrity sha512-66vTBsQw9Tob/9uqOfXmGaJX83HG/Y7ymPcB2MqFSiZMKWz6jQSolwycHi386l2t1Lf71tMmFF9hrTzD4WHqgQ== dependencies: - "@parcel/plugin" "2.13.3" - "@parcel/types" "2.13.3" - "@parcel/utils" "2.13.3" + "@parcel/plugin" "2.14.1" + "@parcel/types" "2.14.1" + "@parcel/utils" "2.14.1" nullthrows "^1.1.1" posthtml "^0.16.5" -"@parcel/packager-js@2.13.3": - version "2.13.3" - resolved "https://registry.yarnpkg.com/@parcel/packager-js/-/packager-js-2.13.3.tgz#6e9fbb6a8cab064ab7021bb6b73f8934e4bc6576" - integrity sha512-0pMHHf2zOn7EOJe88QJw5h/wcV1bFfj6cXVcE55Wa8GX3V+SdCgolnlvNuBcRQ1Tlx0Xkpo+9hMFVIQbNQY6zw== +"@parcel/packager-js@2.14.1": + version "2.14.1" + resolved "https://registry.yarnpkg.com/@parcel/packager-js/-/packager-js-2.14.1.tgz#0854dfdb5162cc8877f3341b52783314cf94b16e" + integrity sha512-NLK9eI876hedSvq95H3Wpk4eaGbPSmSr3fCuAOwfysMh0fO0mzpxzEj7aMK2SariSYLtBLkkeR42QJGe/qzqpA== dependencies: - "@parcel/diagnostic" "2.13.3" - "@parcel/plugin" "2.13.3" - "@parcel/rust" "2.13.3" + "@parcel/diagnostic" "2.14.1" + "@parcel/plugin" "2.14.1" + "@parcel/rust" "2.14.1" "@parcel/source-map" "^2.1.1" - "@parcel/types" "2.13.3" - "@parcel/utils" "2.13.3" + "@parcel/types" "2.14.1" + "@parcel/utils" "2.14.1" globals "^13.2.0" nullthrows "^1.1.1" -"@parcel/packager-raw@2.13.3": - version "2.13.3" - resolved "https://registry.yarnpkg.com/@parcel/packager-raw/-/packager-raw-2.13.3.tgz#89c5bac28f59cbf9ddfb2a561575b3d19e6a021b" - integrity sha512-AWu4UB+akBdskzvT3KGVHIdacU9f7cI678DQQ1jKQuc9yZz5D0VFt3ocFBOmvDfEQDF0uH3jjtJR7fnuvX7Biw== +"@parcel/packager-raw@2.14.1": + version "2.14.1" + resolved "https://registry.yarnpkg.com/@parcel/packager-raw/-/packager-raw-2.14.1.tgz#83055361c00a0c875c6fba35fcae324e85940057" + integrity sha512-R36Awv/TuLIeQSK7l+GX7XEDYR3otutmMBGgZJg4w9Y8P0E26fViNELqzA9CIJq5qBHAC48eOd+V2IGh0RV9GQ== dependencies: - "@parcel/plugin" "2.13.3" + "@parcel/plugin" "2.14.1" -"@parcel/packager-svg@2.13.3": - version "2.13.3" - resolved "https://registry.yarnpkg.com/@parcel/packager-svg/-/packager-svg-2.13.3.tgz#aa569e80de31f1869381cd30a7e091c26c31b7a8" - integrity sha512-tKGRiFq/4jh5u2xpTstNQ7gu+RuZWzlWqpw5NaFmcKe6VQe5CMcS499xTFoREAGnRvevSeIgC38X1a+VOo+/AA== +"@parcel/packager-svg@2.14.1": + version "2.14.1" + resolved "https://registry.yarnpkg.com/@parcel/packager-svg/-/packager-svg-2.14.1.tgz#6f58601520af04ff5ffeaebce372b01024bb99de" + integrity sha512-5s/PSwVd8K92ksML50gGxUPs1WVOfGDoMHBqZbJP21FyTJSqV1e+qDvdjSSWGDImGL79ZAB5gVHguxuonsnAlw== dependencies: - "@parcel/plugin" "2.13.3" - "@parcel/types" "2.13.3" - "@parcel/utils" "2.13.3" + "@parcel/plugin" "2.14.1" + "@parcel/types" "2.14.1" + "@parcel/utils" "2.14.1" posthtml "^0.16.4" -"@parcel/packager-wasm@2.13.3": - version "2.13.3" - resolved "https://registry.yarnpkg.com/@parcel/packager-wasm/-/packager-wasm-2.13.3.tgz#fa179e5d47e5d96ccf2f9b9170288942afccc7f1" - integrity sha512-SZB56/b230vFrSehVXaUAWjJmWYc89gzb8OTLkBm7uvtFtov2J1R8Ig9TTJwinyXE3h84MCFP/YpQElSfoLkJw== +"@parcel/packager-wasm@2.14.1": + version "2.14.1" + resolved "https://registry.yarnpkg.com/@parcel/packager-wasm/-/packager-wasm-2.14.1.tgz#8962648e5bab2e2da95ea84c741f990f70a0eed2" + integrity sha512-crMF0j3zgDgPuUQoXP19bZ2kr1JxwOkEb1uz3l52qzb+bU8mNn500MBh/oNv5Kz3LsmeNFF0QMpAjpCWYyWp8Q== dependencies: - "@parcel/plugin" "2.13.3" + "@parcel/plugin" "2.14.1" -"@parcel/plugin@2.13.3": - version "2.13.3" - resolved "https://registry.yarnpkg.com/@parcel/plugin/-/plugin-2.13.3.tgz#7542a161672821a1cb104ad09eb58695c53268c8" - integrity sha512-cterKHHcwg6q11Gpif/aqvHo056TR+yDVJ3fSdiG2xr5KD1VZ2B3hmofWERNNwjMcnR1h9Xq40B7jCKUhOyNFA== +"@parcel/plugin@2.14.1": + version "2.14.1" + resolved "https://registry.yarnpkg.com/@parcel/plugin/-/plugin-2.14.1.tgz#99ad8a161a0032a7e41e674a1e1e10f46b2a9f95" + integrity sha512-zWqQF+YnCNjOd1lc2nWWdjhr6zNJGV1WFE05W3WSJgyfyes8s4HB0FzShTqJ+R9FQdmYWPmRuxO8hC3lwLSQDg== dependencies: - "@parcel/types" "2.13.3" + "@parcel/types" "2.14.1" -"@parcel/profiler@2.13.3": - version "2.13.3" - resolved "https://registry.yarnpkg.com/@parcel/profiler/-/profiler-2.13.3.tgz#4a375df8f8e1a0a0ab7e73e3562e4e28e9d7cdd7" - integrity sha512-ok6BwWSLvyHe5TuSXjSacYnDStFgP5Y30tA9mbtWSm0INDsYf+m5DqzpYPx8U54OaywWMK8w3MXUClosJX3aPA== +"@parcel/profiler@2.14.1": + version "2.14.1" + resolved "https://registry.yarnpkg.com/@parcel/profiler/-/profiler-2.14.1.tgz#9cca9cbe6372e61bf85b010ab4928c60e775f905" + integrity sha512-qrR+RqXfF1IXJdddMoJaAhFnl6pen1CBoobP8p78pZ2SAefo8gyXnTG4Kgr6ff0VJER03U7o0bL1dI9ooHHhDA== dependencies: - "@parcel/diagnostic" "2.13.3" - "@parcel/events" "2.13.3" - "@parcel/types-internal" "2.13.3" + "@parcel/diagnostic" "2.14.1" + "@parcel/events" "2.14.1" + "@parcel/types-internal" "2.14.1" chrome-trace-event "^1.0.2" -"@parcel/reporter-cli@2.13.3": - version "2.13.3" - resolved "https://registry.yarnpkg.com/@parcel/reporter-cli/-/reporter-cli-2.13.3.tgz#46dcbefeaaf9281cc485fb4b0cc81e2c564abd6a" - integrity sha512-EA5tKt/6bXYNMEavSs35qHlFdx6cZmRazlZxPBgxPePQYoouNAPMNLUOEQozaPhz9f5fvNDN7EHOFaAWcdO2LA== +"@parcel/reporter-cli@2.14.1": + version "2.14.1" + resolved "https://registry.yarnpkg.com/@parcel/reporter-cli/-/reporter-cli-2.14.1.tgz#825bf885b3bbccef6bec2b130713de5351fea75a" + integrity sha512-wNG2JbwpJ5qLRPhwoXgm0LxRNjePRflFzfgwX1NlSKwJp7FtNoczraTt8lZPtoM5e1ChzS2ggKz5XUnYhLQa9A== dependencies: - "@parcel/plugin" "2.13.3" - "@parcel/types" "2.13.3" - "@parcel/utils" "2.13.3" + "@parcel/plugin" "2.14.1" + "@parcel/types" "2.14.1" + "@parcel/utils" "2.14.1" chalk "^4.1.2" term-size "^2.2.1" -"@parcel/reporter-dev-server@2.13.3": - version "2.13.3" - resolved "https://registry.yarnpkg.com/@parcel/reporter-dev-server/-/reporter-dev-server-2.13.3.tgz#af5a9c5f8bf191e03ea95d4cdb59341c9851c83e" - integrity sha512-ZNeFp6AOIQFv7mZIv2P5O188dnZHNg0ymeDVcakfZomwhpSva2dFNS3AnvWo4eyWBlUxkmQO8BtaxeWTs7jAuA== +"@parcel/reporter-dev-server@2.14.1": + version "2.14.1" + resolved "https://registry.yarnpkg.com/@parcel/reporter-dev-server/-/reporter-dev-server-2.14.1.tgz#cbebaa51124738a63d55347329648d87893a7342" + integrity sha512-7bCBNcSNBlsoeDX5JHFTeqRDzGxggEkOqX/HMN0rkp9R1wUOKPu9ik1hHXKjknUOsLYJ/lvHbecLZFaTMBOYIQ== dependencies: - "@parcel/plugin" "2.13.3" - "@parcel/utils" "2.13.3" + "@parcel/codeframe" "2.14.1" + "@parcel/plugin" "2.14.1" + "@parcel/source-map" "^2.1.1" + "@parcel/utils" "2.14.1" -"@parcel/reporter-tracer@2.13.3": - version "2.13.3" - resolved "https://registry.yarnpkg.com/@parcel/reporter-tracer/-/reporter-tracer-2.13.3.tgz#4e60b56877d6bf7f0c468b7f75ff57d61ad11a1a" - integrity sha512-aBsVPI8jLZTDkFYrI69GxnsdvZKEYerkPsu935LcX9rfUYssOnmmUP+3oI+8fbg+qNjJuk9BgoQ4hCp9FOphMQ== +"@parcel/reporter-tracer@2.14.1": + version "2.14.1" + resolved "https://registry.yarnpkg.com/@parcel/reporter-tracer/-/reporter-tracer-2.14.1.tgz#f0d78053a2101f5cc705b4dce439d604af4965d5" + integrity sha512-RBFoP3pVXhRMkatZcNNvl/NbJNS4LVPz2Oy+0pVL18pbMEan2O8HpVbELnUbeWi1995IGBEp2DMGZMAw4qV51A== dependencies: - "@parcel/plugin" "2.13.3" - "@parcel/utils" "2.13.3" + "@parcel/plugin" "2.14.1" + "@parcel/utils" "2.14.1" chrome-trace-event "^1.0.3" nullthrows "^1.1.1" -"@parcel/resolver-default@2.13.3": - version "2.13.3" - resolved "https://registry.yarnpkg.com/@parcel/resolver-default/-/resolver-default-2.13.3.tgz#19987a465ad83a163b3c747e56447c6fd9a905f0" - integrity sha512-urBZuRALWT9pFMeWQ8JirchLmsQEyI9lrJptiwLbJWrwvmlwSUGkcstmPwoNRf/aAQjICB7ser/247Vny0pFxA== +"@parcel/resolver-default@2.14.1": + version "2.14.1" + resolved "https://registry.yarnpkg.com/@parcel/resolver-default/-/resolver-default-2.14.1.tgz#2e372770f1884ac72232bef6b6dfc86d98dfa2fb" + integrity sha512-wRdd/3ws3q82WxJ+ton41C1XiXvlJKW1xIklyvVAu9Bxqvru6N0L8zM6sWBdy305gwfyVq4pBBRUCJu7YxkkUQ== dependencies: - "@parcel/node-resolver-core" "3.4.3" - "@parcel/plugin" "2.13.3" + "@parcel/node-resolver-core" "3.5.1" + "@parcel/plugin" "2.14.1" -"@parcel/runtime-browser-hmr@2.13.3": - version "2.13.3" - resolved "https://registry.yarnpkg.com/@parcel/runtime-browser-hmr/-/runtime-browser-hmr-2.13.3.tgz#9d2ad14b995b6f357aa4a71e6248defa8d79be5d" - integrity sha512-EAcPojQFUNUGUrDk66cu3ySPO0NXRVS5CKPd4QrxPCVVbGzde4koKu8krC/TaGsoyUqhie8HMnS70qBP0GFfcQ== +"@parcel/runtime-browser-hmr@2.14.1": + version "2.14.1" + resolved "https://registry.yarnpkg.com/@parcel/runtime-browser-hmr/-/runtime-browser-hmr-2.14.1.tgz#e3076433464d4d8060dde439c76beaf4cd3c0641" + integrity sha512-HaRMkQhco25klcTKfqL6UD6iRA+fkurbbsEo0p7gSfy9d6HoPS7Sml7duddQ13eBIcbTdYVclucwSIuoDFNoqQ== dependencies: - "@parcel/plugin" "2.13.3" - "@parcel/utils" "2.13.3" + "@parcel/plugin" "2.14.1" + "@parcel/utils" "2.14.1" -"@parcel/runtime-js@2.13.3": - version "2.13.3" - resolved "https://registry.yarnpkg.com/@parcel/runtime-js/-/runtime-js-2.13.3.tgz#847623b17cb9f2e69db3e860ee1971f591175c27" - integrity sha512-62OucNAnxb2Q0uyTFWW/0Hvv2DJ4b5H6neh/YFu2/wmxaZ37xTpEuEcG2do7KW54xE5DeLP+RliHLwi4NvR3ww== +"@parcel/runtime-js@2.14.1": + version "2.14.1" + resolved "https://registry.yarnpkg.com/@parcel/runtime-js/-/runtime-js-2.14.1.tgz#122dbf13694dc577d0de14aab865d8e9e6833a9f" + integrity sha512-YxSpJI5IQTo9ltKPXV9WueOD7z/uNaa9Fcl17OQ/cBgapDBRWqzBgewSSRJPySQt6gWcWdZWTqeeG2OTCRUQOw== dependencies: - "@parcel/diagnostic" "2.13.3" - "@parcel/plugin" "2.13.3" - "@parcel/utils" "2.13.3" + "@parcel/diagnostic" "2.14.1" + "@parcel/plugin" "2.14.1" + "@parcel/utils" "2.14.1" nullthrows "^1.1.1" -"@parcel/runtime-react-refresh@2.13.3": - version "2.13.3" - resolved "https://registry.yarnpkg.com/@parcel/runtime-react-refresh/-/runtime-react-refresh-2.13.3.tgz#7d80c130effffabe3977ded470ad7d97401012ea" - integrity sha512-PYZ1klpJVwqE3WuifILjtF1dugtesHEuJcXYZI85T6UoRSD5ctS1nAIpZzT14Ga1lRt/jd+eAmhWL1l3m/Vk1Q== +"@parcel/runtime-rsc@2.14.1": + version "2.14.1" + resolved "https://registry.yarnpkg.com/@parcel/runtime-rsc/-/runtime-rsc-2.14.1.tgz#ae6727aa4cf307b369f8ec3e2845a47cb68553e2" + integrity sha512-rmvs02ilOkvFjblhQsJL8c8jJjFpQl88xm8owyH2eVpqNdqfyHtpCWHnDjsoKmvjfRTf6143W7w9kLqNb2UNnA== dependencies: - "@parcel/plugin" "2.13.3" - "@parcel/utils" "2.13.3" - react-error-overlay "6.0.9" - react-refresh ">=0.9 <=0.14" - -"@parcel/runtime-service-worker@2.13.3": - version "2.13.3" - resolved "https://registry.yarnpkg.com/@parcel/runtime-service-worker/-/runtime-service-worker-2.13.3.tgz#759c2fc71614187ea375dac509b7c44f3c4d919c" - integrity sha512-BjMhPuT7Us1+YIo31exPRwomPiL+jrZZS5UUAwlEW2XGHDceEotzRM94LwxeFliCScT4IOokGoxixm19qRuzWg== - dependencies: - "@parcel/plugin" "2.13.3" - "@parcel/utils" "2.13.3" + "@parcel/plugin" "2.14.1" + "@parcel/rust" "2.14.1" + "@parcel/utils" "2.14.1" nullthrows "^1.1.1" -"@parcel/rust@2.13.3": - version "2.13.3" - resolved "https://registry.yarnpkg.com/@parcel/rust/-/rust-2.13.3.tgz#924ef166e0a16923d01c83df8a65a7a726f77e3a" - integrity sha512-dLq85xDAtzr3P5200cvxk+8WXSWauYbxuev9LCPdwfhlaWo/JEj6cu9seVdWlkagjGwkoV1kXC+GGntgUXOLAQ== +"@parcel/runtime-service-worker@2.14.1": + version "2.14.1" + resolved "https://registry.yarnpkg.com/@parcel/runtime-service-worker/-/runtime-service-worker-2.14.1.tgz#7349a8cc80f17b41e05136ac9a8a5c1a5e0d2792" + integrity sha512-Dz0tLHrECfzgNBfKm54QWBPsdvchFo4n2FBn4GWss0TYS4QMFrHWgc2YuRwVForXm2yS8/qoLignvM3gH8PLKg== + dependencies: + "@parcel/plugin" "2.14.1" + "@parcel/utils" "2.14.1" + nullthrows "^1.1.1" + +"@parcel/rust@2.14.1": + version "2.14.1" + resolved "https://registry.yarnpkg.com/@parcel/rust/-/rust-2.14.1.tgz#c86b800f1efb1a25cd5d5b4aeda387450bfe000a" + integrity sha512-BGFV+bS72zlzaHQAEobm/9shcW+lvQb0rAdmJJg2C3lGlqeaGks+iEIkH0wHTFzJJ1MpKgew7I3k096La0CjTw== "@parcel/source-map@^2.1.1": version "2.1.1" @@ -2065,41 +2055,41 @@ dependencies: detect-libc "^1.0.3" -"@parcel/transformer-babel@2.13.3": - version "2.13.3" - resolved "https://registry.yarnpkg.com/@parcel/transformer-babel/-/transformer-babel-2.13.3.tgz#a751ccaefd50836be3d01cc2afd5c0982708d5a7" - integrity sha512-ikzK9f5WTFrdQsPitQgjCPH6HmVU8AQPRemIJ2BndYhtodn5PQut5cnSvTrqax8RjYvheEKCQk/Zb/uR7qgS3g== +"@parcel/transformer-babel@2.14.1": + version "2.14.1" + resolved "https://registry.yarnpkg.com/@parcel/transformer-babel/-/transformer-babel-2.14.1.tgz#b3a196b3d84f07a87986a02e908afec4bb867b59" + integrity sha512-WmCidhpNhbL4qWdnNFWS0F+GtYSY8k7X4wi9vYrGcFsh2jilsYoTm4BV91CUZtKfhxpYq7n1X+tknY4cOP8Isg== dependencies: - "@parcel/diagnostic" "2.13.3" - "@parcel/plugin" "2.13.3" + "@parcel/diagnostic" "2.14.1" + "@parcel/plugin" "2.14.1" "@parcel/source-map" "^2.1.1" - "@parcel/utils" "2.13.3" + "@parcel/utils" "2.14.1" browserslist "^4.6.6" json5 "^2.2.0" nullthrows "^1.1.1" semver "^7.5.2" -"@parcel/transformer-css@2.13.3": - version "2.13.3" - resolved "https://registry.yarnpkg.com/@parcel/transformer-css/-/transformer-css-2.13.3.tgz#bb9bfd26798ac955febc7a4eba900a1593321433" - integrity sha512-zbrNURGph6JeVADbGydyZ7lcu/izj41kDxQ9xw4RPRW/3rofQiTU0OTREi+uBWiMENQySXVivEdzHA9cA+aLAA== +"@parcel/transformer-css@2.14.1": + version "2.14.1" + resolved "https://registry.yarnpkg.com/@parcel/transformer-css/-/transformer-css-2.14.1.tgz#52e78a9382ce198f2ed8245ab3aea0adeabb50f2" + integrity sha512-v8kP/V1sOKEukie1veZxxcITJNJiuktNzZuCxR5G/yaJMOU57dTP8oVHGiTRr/eA6A3CRzYjeSWEWvaR3ruQRw== dependencies: - "@parcel/diagnostic" "2.13.3" - "@parcel/plugin" "2.13.3" + "@parcel/diagnostic" "2.14.1" + "@parcel/plugin" "2.14.1" "@parcel/source-map" "^2.1.1" - "@parcel/utils" "2.13.3" + "@parcel/utils" "2.14.1" browserslist "^4.6.6" lightningcss "^1.22.1" nullthrows "^1.1.1" -"@parcel/transformer-html@2.13.3": - version "2.13.3" - resolved "https://registry.yarnpkg.com/@parcel/transformer-html/-/transformer-html-2.13.3.tgz#969398bdce3f1a295462910976cf2f8d45a83c2d" - integrity sha512-Yf74FkL9RCCB4+hxQRVMNQThH9+fZ5w0NLiQPpWUOcgDEEyxTi4FWPQgEBsKl/XK2ehdydbQB9fBgPQLuQxwPg== +"@parcel/transformer-html@2.14.1": + version "2.14.1" + resolved "https://registry.yarnpkg.com/@parcel/transformer-html/-/transformer-html-2.14.1.tgz#45011ab9a7af76b20fcbe58fd4b50417133466bd" + integrity sha512-Q7WKi3zfgP+3QNLFqnuypRLcJBP3PMgL5mClXdIhoyY4D0xpTBoq3NCr4DfdATChrUO6NZm6BcgDVmF04KfYnQ== dependencies: - "@parcel/diagnostic" "2.13.3" - "@parcel/plugin" "2.13.3" - "@parcel/rust" "2.13.3" + "@parcel/diagnostic" "2.14.1" + "@parcel/plugin" "2.14.1" + "@parcel/rust" "2.14.1" nullthrows "^1.1.1" posthtml "^0.16.5" posthtml-parser "^0.12.1" @@ -2107,126 +2097,134 @@ semver "^7.5.2" srcset "4" -"@parcel/transformer-image@2.13.3": - version "2.13.3" - resolved "https://registry.yarnpkg.com/@parcel/transformer-image/-/transformer-image-2.13.3.tgz#e3ee409baa036e5f60036663ad87ff74ff499db3" - integrity sha512-wL1CXyeFAqbp2wcEq/JD3a/tbAyVIDMTC6laQxlIwnVV7dsENhK1qRuJZuoBdixESeUpFQSmmQvDIhcfT/cUUg== +"@parcel/transformer-image@2.14.1": + version "2.14.1" + resolved "https://registry.yarnpkg.com/@parcel/transformer-image/-/transformer-image-2.14.1.tgz#8f13d57ae4e317b38314a7b9455af00b8651fbc2" + integrity sha512-ese7UQAb6KbC4qaPKqejNyx7Jsru8PlWMMcSgiw7o7BnHVqHP8d7MbwlokgxIo0uE/0zMFlEgKdNKtsoj+AEkQ== dependencies: - "@parcel/plugin" "2.13.3" - "@parcel/utils" "2.13.3" - "@parcel/workers" "2.13.3" + "@parcel/plugin" "2.14.1" + "@parcel/utils" "2.14.1" + "@parcel/workers" "2.14.1" nullthrows "^1.1.1" -"@parcel/transformer-js@2.13.3": - version "2.13.3" - resolved "https://registry.yarnpkg.com/@parcel/transformer-js/-/transformer-js-2.13.3.tgz#e53be3b860fb2dd2430bbd7d1089365492255209" - integrity sha512-KqfNGn1IHzDoN2aPqt4nDksgb50Xzcny777C7A7hjlQ3cmkjyJrixYjzzsPaPSGJ+kJpknh3KE8unkQ9mhFvRQ== +"@parcel/transformer-js@2.14.1": + version "2.14.1" + resolved "https://registry.yarnpkg.com/@parcel/transformer-js/-/transformer-js-2.14.1.tgz#89482115fea554020fca443722a4063aa91ed38a" + integrity sha512-Zy60nRvZEabNCOTbChh/RbOpk03s5ozLMOXCAIv1VYRTSZmQFjSlIiwlaNgPjRIn2xpf+2c1y4eslk9z7RPy0w== dependencies: - "@parcel/diagnostic" "2.13.3" - "@parcel/plugin" "2.13.3" - "@parcel/rust" "2.13.3" + "@parcel/diagnostic" "2.14.1" + "@parcel/plugin" "2.14.1" + "@parcel/rust" "2.14.1" "@parcel/source-map" "^2.1.1" - "@parcel/utils" "2.13.3" - "@parcel/workers" "2.13.3" + "@parcel/utils" "2.14.1" + "@parcel/workers" "2.14.1" "@swc/helpers" "^0.5.0" browserslist "^4.6.6" nullthrows "^1.1.1" regenerator-runtime "^0.14.1" semver "^7.5.2" -"@parcel/transformer-json@2.13.3": - version "2.13.3" - resolved "https://registry.yarnpkg.com/@parcel/transformer-json/-/transformer-json-2.13.3.tgz#14ae4bcf572babe58a7aa204b7996ceb5a790698" - integrity sha512-rrq0ab6J0w9ePtsxi0kAvpCmrUYXXAx1Z5PATZakv89rSYbHBKEdXxyCoKFui/UPVCUEGVs5r0iOFepdHpIyeA== +"@parcel/transformer-json@2.14.1": + version "2.14.1" + resolved "https://registry.yarnpkg.com/@parcel/transformer-json/-/transformer-json-2.14.1.tgz#b67a97f9d647cc4c36101db50aac954613cd3cdb" + integrity sha512-oAjq78dt0Z8BbetH7edXSHVolL1DwMvEeqIPJfNybwyuKh3mwWvgbFgeurr3J5B268FXCMYmIgt63wactPnbcQ== dependencies: - "@parcel/plugin" "2.13.3" + "@parcel/plugin" "2.14.1" json5 "^2.2.0" -"@parcel/transformer-postcss@2.13.3": - version "2.13.3" - resolved "https://registry.yarnpkg.com/@parcel/transformer-postcss/-/transformer-postcss-2.13.3.tgz#26d67676ceb313f20097f599628b0da647ea497b" - integrity sha512-AIiWpU0QSFBrPcYIqAnhqB8RGE6yHFznnxztfg1t2zMSOnK3xoU6xqYKv8H/MduShGGrC3qVOeDfM8MUwzL3cw== +"@parcel/transformer-node@2.14.1": + version "2.14.1" + resolved "https://registry.yarnpkg.com/@parcel/transformer-node/-/transformer-node-2.14.1.tgz#0e326b10fb597eb8d18528d8b32e5963bd8b8f56" + integrity sha512-vl0m/k5eGxUe8kb9I56yhNrcrsfaWyn3+bUuLiX2jB4VA+F3qnN5N2V7wskmdGia4G4X174ICYCKQU+fLlDuFg== dependencies: - "@parcel/diagnostic" "2.13.3" - "@parcel/plugin" "2.13.3" - "@parcel/rust" "2.13.3" - "@parcel/utils" "2.13.3" + "@parcel/plugin" "2.14.1" + +"@parcel/transformer-postcss@2.14.1": + version "2.14.1" + resolved "https://registry.yarnpkg.com/@parcel/transformer-postcss/-/transformer-postcss-2.14.1.tgz#fcea120a6533222e90bfb0260dcbf914c8eb24d7" + integrity sha512-YkRLmglO9gGq4Ds/KFFPTU2VpsKcMPi5gcPp1ZGlvJQYXjjMXhHksDsOgDWiPXA+aQuTk9truO93QPdOol3U3w== + dependencies: + "@parcel/diagnostic" "2.14.1" + "@parcel/plugin" "2.14.1" + "@parcel/rust" "2.14.1" + "@parcel/utils" "2.14.1" clone "^2.1.1" nullthrows "^1.1.1" postcss-value-parser "^4.2.0" semver "^7.5.2" -"@parcel/transformer-posthtml@2.13.3": - version "2.13.3" - resolved "https://registry.yarnpkg.com/@parcel/transformer-posthtml/-/transformer-posthtml-2.13.3.tgz#2599df5226aa41b9411bcd816bcbfd2a073b8d39" - integrity sha512-5GSLyccpHASwFAu3uJ83gDIBSvfsGdVmhJvy0Vxe+K1Fklk2ibhvvtUHMhB7mg6SPHC+R9jsNc3ZqY04ZLeGjw== +"@parcel/transformer-posthtml@2.14.1": + version "2.14.1" + resolved "https://registry.yarnpkg.com/@parcel/transformer-posthtml/-/transformer-posthtml-2.14.1.tgz#4d8bc3666a211ef5fa5519bf85882633c5800e51" + integrity sha512-i+CjFA1oGUYH2+gmwa58FsYAd/pHNdkdVRZgzFLeIcYmpZfl0opSwAwZ+5udhnYxed9Mlj77jmSzVK6GpVDYoQ== dependencies: - "@parcel/plugin" "2.13.3" - "@parcel/utils" "2.13.3" + "@parcel/plugin" "2.14.1" + "@parcel/utils" "2.14.1" nullthrows "^1.1.1" posthtml "^0.16.5" posthtml-parser "^0.12.1" posthtml-render "^3.0.0" semver "^7.5.2" -"@parcel/transformer-raw@2.13.3": - version "2.13.3" - resolved "https://registry.yarnpkg.com/@parcel/transformer-raw/-/transformer-raw-2.13.3.tgz#6a2eb2201f5dd13c46e10d0aa1c1749d1165e6f3" - integrity sha512-BFsAbdQF0l8/Pdb7dSLJeYcd8jgwvAUbHgMink2MNXJuRUvDl19Gns8jVokU+uraFHulJMBj40+K/RTd33in4g== +"@parcel/transformer-raw@2.14.1": + version "2.14.1" + resolved "https://registry.yarnpkg.com/@parcel/transformer-raw/-/transformer-raw-2.14.1.tgz#0ed4b6f71a0f5c0798fbe84756bc23f13139d31e" + integrity sha512-OTO3n341HGHyrW4oKVC3InRiurjbPBTWbbX8mtyvfVcGMbs6PkU0jF1rVmO9gOsAOV5vn5AKowQ9eLMJ4xtLvQ== dependencies: - "@parcel/plugin" "2.13.3" + "@parcel/plugin" "2.14.1" -"@parcel/transformer-react-refresh-wrap@2.13.3": - version "2.13.3" - resolved "https://registry.yarnpkg.com/@parcel/transformer-react-refresh-wrap/-/transformer-react-refresh-wrap-2.13.3.tgz#45d69ad21940699cf74984bdc74dc8aceb725f65" - integrity sha512-mOof4cRyxsZRdg8kkWaFtaX98mHpxUhcGPU+nF9RQVa9q737ItxrorsPNR9hpZAyE2TtFNflNW7RoYsgvlLw8w== +"@parcel/transformer-react-refresh-wrap@2.14.1": + version "2.14.1" + resolved "https://registry.yarnpkg.com/@parcel/transformer-react-refresh-wrap/-/transformer-react-refresh-wrap-2.14.1.tgz#8ec2c63aca61c6db02e7fc52ed5583c60ad8da31" + integrity sha512-Cke32thu4UE0Kbld1mqtw9a/Fxa67pu7BlDHvJTZvQrpAfbsev2RJM7GYYFn9KwmUqavV7GJjHHsjxGBc7JsZw== dependencies: - "@parcel/plugin" "2.13.3" - "@parcel/utils" "2.13.3" - react-refresh ">=0.9 <=0.14" + "@parcel/error-overlay" "2.14.1" + "@parcel/plugin" "2.14.1" + "@parcel/utils" "2.14.1" + react-refresh ">=0.9 <=0.16" -"@parcel/transformer-svg@2.13.3": - version "2.13.3" - resolved "https://registry.yarnpkg.com/@parcel/transformer-svg/-/transformer-svg-2.13.3.tgz#dabb0f9d23071d36d21e2e460111d5ed0fdb23e3" - integrity sha512-9jm7ZF4KHIrGLWlw/SFUz5KKJ20nxHvjFAmzde34R9Wu+F1BOjLZxae7w4ZRwvIc+UVOUcBBQFmhSVwVDZg6Dw== +"@parcel/transformer-svg@2.14.1": + version "2.14.1" + resolved "https://registry.yarnpkg.com/@parcel/transformer-svg/-/transformer-svg-2.14.1.tgz#6d580bca242688046441dbd6de40a5bac2ddf39c" + integrity sha512-AglOlBE8p7b5hzNM62LcslMbC73Yke8eMIsW9wm3By6/vIjW5GevAA99mrx5OhX+SKn4iJI1fAXoZ+2cP0TxJw== dependencies: - "@parcel/diagnostic" "2.13.3" - "@parcel/plugin" "2.13.3" - "@parcel/rust" "2.13.3" + "@parcel/diagnostic" "2.14.1" + "@parcel/plugin" "2.14.1" + "@parcel/rust" "2.14.1" nullthrows "^1.1.1" posthtml "^0.16.5" posthtml-parser "^0.12.1" posthtml-render "^3.0.0" semver "^7.5.2" -"@parcel/types-internal@2.13.3": - version "2.13.3" - resolved "https://registry.yarnpkg.com/@parcel/types-internal/-/types-internal-2.13.3.tgz#dbbfefeac3ce0e735dcf82bd171115e239d31692" - integrity sha512-Lhx0n+9RCp+Ipktf/I+CLm3zE9Iq9NtDd8b2Vr5lVWyoT8AbzBKIHIpTbhLS4kjZ80L3I6o93OYjqAaIjsqoZw== +"@parcel/types-internal@2.14.1": + version "2.14.1" + resolved "https://registry.yarnpkg.com/@parcel/types-internal/-/types-internal-2.14.1.tgz#200f5834d9a14df3b21d171b1ebf30e89fce0055" + integrity sha512-oBQfuUrNSx9ZB8HpHpMr3y0SRst5NKIsYlzx8uwHlt8A3c/4PS+apI6jamyt905grdCOpZYhNls+pY1HmhAtRA== dependencies: - "@parcel/diagnostic" "2.13.3" - "@parcel/feature-flags" "2.13.3" + "@parcel/diagnostic" "2.14.1" + "@parcel/feature-flags" "2.14.1" "@parcel/source-map" "^2.1.1" utility-types "^3.10.0" -"@parcel/types@2.13.3": - version "2.13.3" - resolved "https://registry.yarnpkg.com/@parcel/types/-/types-2.13.3.tgz#cb59dd663a945f85eea3764364bb47066023d8a9" - integrity sha512-+RpFHxx8fy8/dpuehHUw/ja9PRExC3wJoIlIIF42E7SLu2SvlTHtKm6EfICZzxCXNEBzjoDbamCRcN0nmTPlhw== +"@parcel/types@2.14.1": + version "2.14.1" + resolved "https://registry.yarnpkg.com/@parcel/types/-/types-2.14.1.tgz#8e6786007eadc9b0a9b0da4e73168103b6d046e8" + integrity sha512-qlF96JPNYAwApUxcLEXDH5YJDQLQJsEVXNYTHXSaXR0qDybaCmo5104BcAU4R7Czic5NhGhFBScVvtwTyW2Vqg== dependencies: - "@parcel/types-internal" "2.13.3" - "@parcel/workers" "2.13.3" + "@parcel/types-internal" "2.14.1" + "@parcel/workers" "2.14.1" -"@parcel/utils@2.13.3": - version "2.13.3" - resolved "https://registry.yarnpkg.com/@parcel/utils/-/utils-2.13.3.tgz#70199960d84a7c0c0bc813799dd6dab0571e2e59" - integrity sha512-yxY9xw2wOUlJaScOXYZmMGoZ4Ck4Kqj+p6Koe5kLkkWM1j98Q0Dj2tf/mNvZi4yrdnlm+dclCwNRnuE8Q9D+pw== +"@parcel/utils@2.14.1": + version "2.14.1" + resolved "https://registry.yarnpkg.com/@parcel/utils/-/utils-2.14.1.tgz#f67fce0dd1fa979da5035247c32d7e5cc80a2e51" + integrity sha512-1178E3Dw6CjEeq6oyOfs/rNfceCQ2t4qKGpiPXGV//3k/ZDEwT4VR/f0FS0S6T1EMePrp0E0KAMQ9Zz0vrHhIA== dependencies: - "@parcel/codeframe" "2.13.3" - "@parcel/diagnostic" "2.13.3" - "@parcel/logger" "2.13.3" - "@parcel/markdown-ansi" "2.13.3" - "@parcel/rust" "2.13.3" + "@parcel/codeframe" "2.14.1" + "@parcel/diagnostic" "2.14.1" + "@parcel/logger" "2.14.1" + "@parcel/markdown-ansi" "2.14.1" + "@parcel/rust" "2.14.1" "@parcel/source-map" "^2.1.1" chalk "^4.1.2" nullthrows "^1.1.1" @@ -2320,16 +2318,16 @@ "@parcel/watcher-win32-ia32" "2.5.1" "@parcel/watcher-win32-x64" "2.5.1" -"@parcel/workers@2.13.3": - version "2.13.3" - resolved "https://registry.yarnpkg.com/@parcel/workers/-/workers-2.13.3.tgz#781bd062efe9346b7ac9f883b91e8fc6e8f6bda1" - integrity sha512-oAHmdniWTRwwwsKbcF4t3VjOtKN+/W17Wj5laiYB+HLkfsjGTfIQPj3sdXmrlBAGpI4omIcvR70PHHXnfdTfwA== +"@parcel/workers@2.14.1": + version "2.14.1" + resolved "https://registry.yarnpkg.com/@parcel/workers/-/workers-2.14.1.tgz#0b545bd4b3faf99e880d85b1f7fdbe71caae4ea5" + integrity sha512-i0mui7kSLAPT0B0/5+YUjbP38F8e8C5QDVritAW1lbRe5XCqkvO+nU4PRsjyP5mvXVhoFVCe7UycbD2D/lrogA== dependencies: - "@parcel/diagnostic" "2.13.3" - "@parcel/logger" "2.13.3" - "@parcel/profiler" "2.13.3" - "@parcel/types-internal" "2.13.3" - "@parcel/utils" "2.13.3" + "@parcel/diagnostic" "2.14.1" + "@parcel/logger" "2.14.1" + "@parcel/profiler" "2.14.1" + "@parcel/types-internal" "2.14.1" + "@parcel/utils" "2.14.1" nullthrows "^1.1.1" "@pkgjs/parseargs@^0.11.0": @@ -2618,74 +2616,74 @@ magic-string "^0.25.0" string.prototype.matchall "^4.0.6" -"@swc/core-darwin-arm64@1.11.4": - version "1.11.4" - resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.11.4.tgz#89f771d867d33fe3e2d871f3aa532017569a5ad3" - integrity sha512-Oi4lt4wqjpp80pcCh+vzvpsESJ8XXozYCE5EM/dDpr+9m2oRpkseds7Gq4ulzgdbUDPo1jJ1PonjjrKpfKY+sQ== +"@swc/core-darwin-arm64@1.11.12": + version "1.11.12" + resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.11.12.tgz#3fcc7fd52844c1b0486a38b338331c9efa1d240b" + integrity sha512-x+iljeyIaVq7VCAy9pM0rqAb9GKA1cqDkqCxgFDxH3rcH+ykZa12vkDlTwysgkfLV8pr0KhCRHkwY+iAqPbO9g== -"@swc/core-darwin-x64@1.11.4": - version "1.11.4" - resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.11.4.tgz#1f273b83b0c058ff66c5a75f92ad3dad7ed24126" - integrity sha512-Tb7ez94DXxhX5iJ5slnAlT2gwJinQk3pMnQ46Npi6adKr3ZXM5Bdk0jpRUp8XjEcgNXkQRV1DtrySgCz6YlEnQ== +"@swc/core-darwin-x64@1.11.12": + version "1.11.12" + resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.11.12.tgz#5c3ad2da24080449a4c5d9de1b77cabfa79ec4d5" + integrity sha512-DwTXPdhJ/+scUR1iWttu3p0q8b5omF71xWFCw6UC99QBJQ4femmRtZNacgdiBkxZ5IbUlxd8m5UzMBc/+H5rWw== -"@swc/core-linux-arm-gnueabihf@1.11.4": - version "1.11.4" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.11.4.tgz#37900bbdae1b5f38774634af424be5dfdd569690" - integrity sha512-p1uV+6Mi+0M+1kL7qL206ZaohomYMW7yroXSLDTJXbIylx7wG2xrUQL6AFtz2DwqDoX/E8jMNBjp+GcEy8r8Ig== +"@swc/core-linux-arm-gnueabihf@1.11.12": + version "1.11.12" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.11.12.tgz#bd6aaa48146eeef0ca1d974e4143047574674052" + integrity sha512-ls9b3lX2x3tnJKGn6zSDFK1ohdmdUkE6nwqrVmdzqAwr/Q5i2ij/dmkOFCloItc2PHNVtRGGsC4+FYSm1EBLjg== -"@swc/core-linux-arm64-gnu@1.11.4": - version "1.11.4" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.11.4.tgz#283fc8bdb7a2b5fbfd1c6c63a8f90fd337190020" - integrity sha512-4ijX4bWf9oc7kWkT6xUhugVGzEJ7U9c7CHNmt/xhI/yWsQdfM11+HECqWh7ay3m+aaEoVdvTeU5gykeF5jSxDA== +"@swc/core-linux-arm64-gnu@1.11.12": + version "1.11.12" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.11.12.tgz#e49e75f28e780e87308dee938d5f3803316b701e" + integrity sha512-F0nMLl5kYbew5GjHq7B21poE5VOPgSsoQ0VEXd4Fji3rR0d0gLoK2r+JP92XmpRxAzdzpdak1DQczWMyf2BQAQ== -"@swc/core-linux-arm64-musl@1.11.4": - version "1.11.4" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.11.4.tgz#2ea1adc264bddc2813bfea176da7fdb2f17a9a5a" - integrity sha512-XI+gOgcuSanejbAC5QXKTjNA3GUJi7bzHmeJbNhKpX9d349RdVwan0k9okHmhMBY7BywAg3LK0ovF9PmOLgMHg== +"@swc/core-linux-arm64-musl@1.11.12": + version "1.11.12" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.11.12.tgz#d16b1cd37a44eb978488880da71a8d55fdd35f31" + integrity sha512-3dlHowBgYBgi23ZBSvFHe/tD3PowEhxfVAy08NckWBeaG/e4dyrYMhAiccfuy6jkDYXEF1L2DtpRtxGImxoaPg== -"@swc/core-linux-x64-gnu@1.11.4": - version "1.11.4" - resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.11.4.tgz#c2cc40284bfa3a2df9b809d1a7363f1a4358334c" - integrity sha512-wyD6noaCPFayKOvl9mTxuiQoEULAagGuO0od2VkW7h4HvlgpOAZNekZYX73WEP/b+WuePNHurZ9KGpom43IzmA== +"@swc/core-linux-x64-gnu@1.11.12": + version "1.11.12" + resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.11.12.tgz#09c92a17fd2deeba94d39980dc92f33a95fcd2e2" + integrity sha512-ToEWzLA5lXlYCbGNzMow6+uy4zhpXKQyFb3RHM8AYVb0n4pNPWvwF+8ybWDimeGBBaHJLgRQsUMuJ4NV6urSrA== -"@swc/core-linux-x64-musl@1.11.4": - version "1.11.4" - resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.11.4.tgz#faea8a64c79ba34c62de82a3fa5a4b532b830995" - integrity sha512-e2vG9gUF1BRX0BWqSEHop6u14l5BtV3VS2Pmr+oquc0Ycs/zj81xhYc3ML4ByK5OxDkAaKBWryAOKTLaJA/DVg== +"@swc/core-linux-x64-musl@1.11.12": + version "1.11.12" + resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.11.12.tgz#840abcbb13139a48224cd3f617b0426b0f1cc7de" + integrity sha512-N5xF+MDZr79e8gvVXX3YP1bMeaRL16Kst/R7bGUQvvCq1UGD86qMUtSr5KfCl0h5SNKP2YKtkN98HQLnGEikow== -"@swc/core-win32-arm64-msvc@1.11.4": - version "1.11.4" - resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.11.4.tgz#99d6b4ef4bf4b8ffe74ccfe842e0f502bff9e52e" - integrity sha512-rm51iljNqjCA/41gxYameuyjX1ENaTlvdxmaoPPYeUDt6hfypG93IxMJJCewaeHN9XfNxqZU7d4cupNqk+8nng== +"@swc/core-win32-arm64-msvc@1.11.12": + version "1.11.12" + resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.11.12.tgz#e9da0fddd74c21fba8bb8ca0df46fc5a0c724542" + integrity sha512-/PYiyYWSQRtMoOamMfhAfq0y3RWk9LpUZ49yetJn2XI85TRkL5u2DTLLNkTPvoTiCfo0eZOJF9t5b7Z6ly0iHQ== -"@swc/core-win32-ia32-msvc@1.11.4": - version "1.11.4" - resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.11.4.tgz#b1a6d44948a981583a36b4e3243ffc12be3aba9e" - integrity sha512-PHy3N6zlyU8te7Umi0ggXNbcx2VUkwpE59PW9FQQy9MBZM1Qn+OEGnO/4KLWjGFABw+9CwIeaRYgq6uCi1ry6A== +"@swc/core-win32-ia32-msvc@1.11.12": + version "1.11.12" + resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.11.12.tgz#0505446d80663c61d8557d3fccab2fb3e8e197c2" + integrity sha512-Dxm6W4p0YVNIPnYh/Kf/9zPeaD6sVAGDQN+2c52l4m/4gR5aDgE+xg6k5lAt4ok7LDXInL3n1nwYEG7Tc4JcSQ== -"@swc/core-win32-x64-msvc@1.11.4": - version "1.11.4" - resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.11.4.tgz#e7df60eb9971f2952a4ed411235969b7c5345727" - integrity sha512-0TiriDGl7Dr4ObfMBk07PS4Ql5hgQH0QnU3E8I+fbs45hqfwC5OrN47HOsXx4ZbEw8XYxp2NM8SGnVoTIm4J8w== +"@swc/core-win32-x64-msvc@1.11.12": + version "1.11.12" + resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.11.12.tgz#01db0c41fa197668318a6824d079ea51b9ea971f" + integrity sha512-PP8RSJTcda5nUHJGkbKeQ20OC+L2LxcbjYpyha1OqIFyu/qWG9zMMYVaTLKJL7zsJ14pIM/mpS3u+CJARQ+Hzw== -"@swc/core@^1.7.26": - version "1.11.4" - resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.11.4.tgz#f120160b44eaea9c8a5eb19343891aaa7e2cf76f" - integrity sha512-EHl6eNod/914xDRK4nu7gr78riK2cfi4DkAMvJt6COdaNGOnbR5eKrLe3SnRizyzzrPcxUMhflDL5hrcXS8rAQ== +"@swc/core@^1.11.5": + version "1.11.12" + resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.11.12.tgz#4c56a4ab7ed17046bf92b0e218462ea09567f662" + integrity sha512-Jwx9JH1O6Vm7BS9AEPLlquJNSy6Lbt/kiJIlxSslDuBLeDJD13lXQfitvazqgRwGEHx1QmwEq8mc0OSristtRw== dependencies: "@swc/counter" "^0.1.3" "@swc/types" "^0.1.19" optionalDependencies: - "@swc/core-darwin-arm64" "1.11.4" - "@swc/core-darwin-x64" "1.11.4" - "@swc/core-linux-arm-gnueabihf" "1.11.4" - "@swc/core-linux-arm64-gnu" "1.11.4" - "@swc/core-linux-arm64-musl" "1.11.4" - "@swc/core-linux-x64-gnu" "1.11.4" - "@swc/core-linux-x64-musl" "1.11.4" - "@swc/core-win32-arm64-msvc" "1.11.4" - "@swc/core-win32-ia32-msvc" "1.11.4" - "@swc/core-win32-x64-msvc" "1.11.4" + "@swc/core-darwin-arm64" "1.11.12" + "@swc/core-darwin-x64" "1.11.12" + "@swc/core-linux-arm-gnueabihf" "1.11.12" + "@swc/core-linux-arm64-gnu" "1.11.12" + "@swc/core-linux-arm64-musl" "1.11.12" + "@swc/core-linux-x64-gnu" "1.11.12" + "@swc/core-linux-x64-musl" "1.11.12" + "@swc/core-win32-arm64-msvc" "1.11.12" + "@swc/core-win32-ia32-msvc" "1.11.12" + "@swc/core-win32-x64-msvc" "1.11.12" "@swc/counter@^0.1.3": version "0.1.3" @@ -2746,11 +2744,6 @@ dependencies: "@babel/types" "^7.20.7" -"@types/bcryptjs@^2.4.6": - version "2.4.6" - resolved "https://registry.yarnpkg.com/@types/bcryptjs/-/bcryptjs-2.4.6.tgz#2b92e3c2121c66eba3901e64faf8bb922ec291fa" - integrity sha512-9xlo6R2qDs5uixm0bcIqCeMCE6HiQsIyel9KQySStiyqNl2tnj2mP3DX1Nf56MD6KMenNNlBBsy3LJ7gUEQPXQ== - "@types/body-parser@*": version "1.19.5" resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.5.tgz#04ce9a3b677dc8bd681a17da1ab9835dc9d3ede4" @@ -2936,6 +2929,13 @@ resolved "https://registry.yarnpkg.com/@types/js-cookie/-/js-cookie-3.0.6.tgz#a04ca19e877687bd449f5ad37d33b104b71fdf95" integrity sha512-wkw9yd1kEXOPnvEeEV1Go1MmxtBJL0RR79aOTAApecWFVu7w0NNXNqhcWgvw2YgZDYadliXkl14pa3WXw5jlCQ== +"@types/jsbarcode@^3.11.4": + version "3.11.4" + resolved "https://registry.yarnpkg.com/@types/jsbarcode/-/jsbarcode-3.11.4.tgz#4322d8cf0e7a0c524a8ba7433399822ea6ca26d6" + integrity sha512-VBcpTAnEMH0Gbh8JpV14CgOtJjCYjsvR2FoDRyoYPE0gUxtApf8N4c+HKEOyz/iiIZkMzqrzBA3XX7+KgKxxsA== + dependencies: + "@types/node" "*" + "@types/json-schema@^7.0.15", "@types/json-schema@^7.0.8": version "7.0.15" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" @@ -2953,10 +2953,10 @@ dependencies: "@types/node" "*" -"@types/leaflet@^1.9.16": - version "1.9.16" - resolved "https://registry.yarnpkg.com/@types/leaflet/-/leaflet-1.9.16.tgz#3e3abc103e106523cde01625057e2294f332ec3b" - integrity sha512-wzZoyySUxkgMZ0ihJ7IaUIblG8Rdc8AbbZKLneyn+QjYsj5q1QU7TEKYqwTr10BGSzY5LI7tJk9Ifo+mEjdFRw== +"@types/leaflet@^1.9.17": + version "1.9.17" + resolved "https://registry.yarnpkg.com/@types/leaflet/-/leaflet-1.9.17.tgz#f7f12f9306029df48801cd830f66597d614a2e08" + integrity sha512-IJ4K6t7I3Fh5qXbQ1uwL3CFVbCi6haW9+53oLWgdKlLP7EaS21byWFJxxqOx9y8I0AP0actXSJLVMbyvxhkUTA== dependencies: "@types/geojson" "*" @@ -2986,10 +2986,10 @@ dependencies: undici-types "~6.19.2" -"@types/node@^22.13.10": - version "22.13.10" - resolved "https://registry.yarnpkg.com/@types/node/-/node-22.13.10.tgz#df9ea358c5ed991266becc3109dc2dc9125d77e4" - integrity sha512-I6LPUvlRH+O6VRUqYOcMudhaIdUVWfsjnZavnsraHvpBwaEyMN29ry+0UVJhImYL16xsscu0aske3yA+uPOWfw== +"@types/node@^22.13.11": + version "22.13.11" + resolved "https://registry.yarnpkg.com/@types/node/-/node-22.13.11.tgz#f0ed6b302dcf0f4229d44ea707e77484ad46d234" + integrity sha512-iEUCUJoU0i3VnrCmgoWCXttklWcvoCIx4jzcP22fioIVSdTmjgoEvmAO/QPw6TcS9k5FrNgn4w7q5lGOd1CT5g== dependencies: undici-types "~6.20.0" @@ -3100,6 +3100,21 @@ natural-compare "^1.4.0" ts-api-utils "^2.0.1" +"@typescript-eslint/eslint-plugin@8.27.0": + version "8.27.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.27.0.tgz#fbef10802365832ee1d1bd5d2117dcec82727a72" + integrity sha512-4henw4zkePi5p252c8ncBLzLce52SEUz2Ebj8faDnuUXz2UuHEONYcJ+G0oaCF+bYCWVZtrGzq3FD7YXetmnSA== + dependencies: + "@eslint-community/regexpp" "^4.10.0" + "@typescript-eslint/scope-manager" "8.27.0" + "@typescript-eslint/type-utils" "8.27.0" + "@typescript-eslint/utils" "8.27.0" + "@typescript-eslint/visitor-keys" "8.27.0" + graphemer "^1.4.0" + ignore "^5.3.1" + natural-compare "^1.4.0" + ts-api-utils "^2.0.1" + "@typescript-eslint/parser@8.26.0": version "8.26.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.26.0.tgz#9b4d2198e89f64fb81e83167eedd89a827d843a9" @@ -3111,6 +3126,17 @@ "@typescript-eslint/visitor-keys" "8.26.0" debug "^4.3.4" +"@typescript-eslint/parser@8.27.0": + version "8.27.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.27.0.tgz#3f6beaa83934467eda34ae82ef04090014df8227" + integrity sha512-XGwIabPallYipmcOk45DpsBSgLC64A0yvdAkrwEzwZ2viqGqRUJ8eEYoPz0CWnutgAFbNMPdsGGvzjSmcWVlEA== + dependencies: + "@typescript-eslint/scope-manager" "8.27.0" + "@typescript-eslint/types" "8.27.0" + "@typescript-eslint/typescript-estree" "8.27.0" + "@typescript-eslint/visitor-keys" "8.27.0" + debug "^4.3.4" + "@typescript-eslint/scope-manager@8.26.0": version "8.26.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.26.0.tgz#b06623fad54a3a77fadab5f652ef75ed3780b545" @@ -3119,6 +3145,14 @@ "@typescript-eslint/types" "8.26.0" "@typescript-eslint/visitor-keys" "8.26.0" +"@typescript-eslint/scope-manager@8.27.0": + version "8.27.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.27.0.tgz#b51042927067d677fbfc471605cf40d1ffaee482" + integrity sha512-8oI9GwPMQmBryaaxG1tOZdxXVeMDte6NyJA4i7/TWa4fBwgnAXYlIQP+uYOeqAaLJ2JRxlG9CAyL+C+YE9Xknw== + dependencies: + "@typescript-eslint/types" "8.27.0" + "@typescript-eslint/visitor-keys" "8.27.0" + "@typescript-eslint/scope-manager@^8.13.0": version "8.25.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.25.0.tgz#ac3805077aade898e98ca824294c998545597df3" @@ -3137,6 +3171,16 @@ debug "^4.3.4" ts-api-utils "^2.0.1" +"@typescript-eslint/type-utils@8.27.0": + version "8.27.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.27.0.tgz#af3c4eefcb64455ee50aae2d7069918467af085c" + integrity sha512-wVArTVcz1oJOIEJxui/nRhV0TXzD/zMSOYi/ggCfNq78EIszddXcJb7r4RCp/oBrjt8n9A0BSxRMKxHftpDxDA== + dependencies: + "@typescript-eslint/typescript-estree" "8.27.0" + "@typescript-eslint/utils" "8.27.0" + debug "^4.3.4" + ts-api-utils "^2.0.1" + "@typescript-eslint/types@8.25.0": version "8.25.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.25.0.tgz#f91512c2f532b1d6a8826cadd0b0e5cd53cf97e0" @@ -3147,6 +3191,11 @@ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.26.0.tgz#c4e93a8faf3a38a8d8adb007dc7834f1c89ee7bf" integrity sha512-89B1eP3tnpr9A8L6PZlSjBvnJhWXtYfZhECqlBl1D9Lme9mHO6iWlsprBtVenQvY1HMhax1mWOjhtL3fh/u+pA== +"@typescript-eslint/types@8.27.0": + version "8.27.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.27.0.tgz#3dd01ced4c81e798d1106fda0904f8d5c91051aa" + integrity sha512-/6cp9yL72yUHAYq9g6DsAU+vVfvQmd1a8KyA81uvfDE21O2DwQ/qxlM4AR8TSdAu+kJLBDrEHKC5/W2/nxsY0A== + "@typescript-eslint/typescript-estree@8.26.0": version "8.26.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.26.0.tgz#128972172005a7376e34ed2ecba4e29363b0cad1" @@ -3161,6 +3210,20 @@ semver "^7.6.0" ts-api-utils "^2.0.1" +"@typescript-eslint/typescript-estree@8.27.0": + version "8.27.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.27.0.tgz#4e02a1056454a84418cc9bce7c00b1c08b03567a" + integrity sha512-BnKq8cqPVoMw71O38a1tEb6iebEgGA80icSxW7g+kndx0o6ot6696HjG7NdgfuAVmVEtwXUr3L8R9ZuVjoQL6A== + dependencies: + "@typescript-eslint/types" "8.27.0" + "@typescript-eslint/visitor-keys" "8.27.0" + debug "^4.3.4" + fast-glob "^3.3.2" + is-glob "^4.0.3" + minimatch "^9.0.4" + semver "^7.6.0" + ts-api-utils "^2.0.1" + "@typescript-eslint/typescript-estree@^8.13.0": version "8.25.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.25.0.tgz#d8409c63abddd4cf5b93c031b24b9edc1c7c1299" @@ -3185,6 +3248,16 @@ "@typescript-eslint/types" "8.26.0" "@typescript-eslint/typescript-estree" "8.26.0" +"@typescript-eslint/utils@8.27.0": + version "8.27.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.27.0.tgz#d9c2a4891c6a85b952a9d5f9656c379ab111cf6d" + integrity sha512-njkodcwH1yvmo31YWgRHNb/x1Xhhq4/m81PhtvmRngD8iHPehxffz1SNCO+kwaePhATC+kOa/ggmvPoPza5i0Q== + dependencies: + "@eslint-community/eslint-utils" "^4.4.0" + "@typescript-eslint/scope-manager" "8.27.0" + "@typescript-eslint/types" "8.27.0" + "@typescript-eslint/typescript-estree" "8.27.0" + "@typescript-eslint/visitor-keys@8.25.0": version "8.25.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.25.0.tgz#e8646324cd1793f96e02669cb717a05319403164" @@ -3201,6 +3274,14 @@ "@typescript-eslint/types" "8.26.0" eslint-visitor-keys "^4.2.0" +"@typescript-eslint/visitor-keys@8.27.0": + version "8.27.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.27.0.tgz#4a13e9d7ad7e311a07ea1b178b4c9f848ce11334" + integrity sha512-WsXQwMkILJvffP6z4U3FYJPlbf/j07HIxmDjZpbNvBJkMfvwXj5ACRkkHwBDvLBbDbtX5TdU64/rcvKJ/vuInQ== + dependencies: + "@typescript-eslint/types" "8.27.0" + eslint-visitor-keys "^4.2.0" + "@vitejs/plugin-vue@^5.1.4": version "5.2.1" resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-5.2.1.tgz#d1491f678ee3af899f7ae57d9c21dc52a65c7133" @@ -3749,10 +3830,10 @@ available-typed-arrays@^1.0.7: dependencies: possible-typed-array-names "^1.0.0" -axios@^1.8.2: - version "1.8.2" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.8.2.tgz#fabe06e241dfe83071d4edfbcaa7b1c3a40f7979" - integrity sha512-ls4GYBm5aig9vWx8AWDSGLpnpDQRtWAfrjU+EuytuODrFBkqesN2RkOQCBzrA1RQNHw1SmRMSDDDSwzNAYQ6Rg== +axios@^1.8.4: + version "1.8.4" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.8.4.tgz#78990bb4bc63d2cae072952d374835950a82f447" + integrity sha512-eBSYY4Y68NNlHbHBMdeDmKNtDgXWhQsJcGqzO3iLUM0GraQFSS9cVgPX5I9b3lbdFKyYoAEGAZF1DwhTaljNAw== dependencies: follow-redirects "^1.15.6" form-data "^4.0.0" @@ -7537,6 +7618,11 @@ js-yaml@~3.7.0: argparse "^1.0.7" esprima "^2.6.0" +jsbarcode@^3.11.6: + version "3.11.6" + resolved "https://registry.yarnpkg.com/jsbarcode/-/jsbarcode-3.11.6.tgz#96e8fbc3395476e162982a6064b98a09b5ea02c0" + integrity sha512-G5TKGyKY1zJo0ZQKFM1IIMfy0nF2rs92BLlCz+cU4/TazIc4ZH+X1GYeDRt7TKjrYqmPfTjwTBkU/QnQlsYiuA== + jsesc@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.1.0.tgz#74d335a234f67ed19907fdadfac7ccf9d409825d" @@ -8290,10 +8376,10 @@ normalize.css@^8.0.1: resolved "https://registry.yarnpkg.com/normalize.css/-/normalize.css-8.0.1.tgz#9b98a208738b9cc2634caacbc42d131c97487bf3" integrity sha512-qizSNPO93t1YUuUhP22btGOo3chcvDFqFaj2TRybP0DMxkHOCTYwp3n34fel4a31ORXy4m1Xq0Gyqpb5m33qIg== -npm-check-updates@^17.1.15: - version "17.1.15" - resolved "https://registry.yarnpkg.com/npm-check-updates/-/npm-check-updates-17.1.15.tgz#3e5734f5acf91de1c4ef3cd4ac460172d9195c99" - integrity sha512-miATvKu5rjec/1wxc5TGDjpsucgtCHwRVZorZpDkS6NzdWXfnUWlN4abZddWb7XSijAuBNzzYglIdTm9SbgMVg== +npm-check-updates@^17.1.16: + version "17.1.16" + resolved "https://registry.yarnpkg.com/npm-check-updates/-/npm-check-updates-17.1.16.tgz#28f5debfb81b29bf152162de810beb526b638226" + integrity sha512-9nohkfjLRzLfsLVGbO34eXBejvrOOTuw5tvNammH73KEFG5XlFoi3G2TgjTExHtnrKWCbZ+mTT+dbNeSjASIPw== npm-run-path@^4.0.1: version "4.0.1" @@ -8535,23 +8621,23 @@ param-case@^3.0.4: dot-case "^3.0.4" tslib "^2.0.3" -parcel@^2.13.3: - version "2.13.3" - resolved "https://registry.yarnpkg.com/parcel/-/parcel-2.13.3.tgz#d82c31ecf50169215e31a716b0f8ee5a20bdd865" - integrity sha512-8GrC8C7J8mwRpAlk7EJ7lwdFTbCN+dcXH2gy5AsEs9pLfzo9wvxOTx6W0fzSlvCOvZOita+8GdfYlGfEt0tRgA== +parcel@^2.14.1: + version "2.14.1" + resolved "https://registry.yarnpkg.com/parcel/-/parcel-2.14.1.tgz#7f233b6d65cd76bb0019b23f3d2cdba39b243f62" + integrity sha512-fkqepRAxXBDPrI0omfbG2AInCGJVyxlBqVPxc/+qsW+JbyIED0ZgPgSCpvLuzTW00A2LO1/4k6oDWvTU2D84Dw== dependencies: - "@parcel/config-default" "2.13.3" - "@parcel/core" "2.13.3" - "@parcel/diagnostic" "2.13.3" - "@parcel/events" "2.13.3" - "@parcel/feature-flags" "2.13.3" - "@parcel/fs" "2.13.3" - "@parcel/logger" "2.13.3" - "@parcel/package-manager" "2.13.3" - "@parcel/reporter-cli" "2.13.3" - "@parcel/reporter-dev-server" "2.13.3" - "@parcel/reporter-tracer" "2.13.3" - "@parcel/utils" "2.13.3" + "@parcel/config-default" "2.14.1" + "@parcel/core" "2.14.1" + "@parcel/diagnostic" "2.14.1" + "@parcel/events" "2.14.1" + "@parcel/feature-flags" "2.14.1" + "@parcel/fs" "2.14.1" + "@parcel/logger" "2.14.1" + "@parcel/package-manager" "2.14.1" + "@parcel/reporter-cli" "2.14.1" + "@parcel/reporter-dev-server" "2.14.1" + "@parcel/reporter-tracer" "2.14.1" + "@parcel/utils" "2.14.1" chalk "^4.1.2" commander "^12.1.0" get-port "^4.2.0" @@ -9252,20 +9338,15 @@ raw-body@2.5.2: iconv-lite "0.4.24" unpipe "1.0.0" -react-error-overlay@6.0.9: - version "6.0.9" - resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.0.9.tgz#3c743010c9359608c375ecd6bc76f35d93995b0a" - integrity sha512-nQTTcUu+ATDbrSD1BZHr5kgSD4oF8OFjxun8uAaL8RwPBacGBNPf/yAuVVdx17N8XNzRDMrZ9XcKZHCjPW+9ew== - react-is@^18.0.0: version "18.3.1" resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.3.1.tgz#e83557dc12eae63a99e003a46388b1dcbb44db7e" integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg== -"react-refresh@>=0.9 <=0.14": - version "0.14.2" - resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.14.2.tgz#3833da01ce32da470f1f936b9d477da5c7028bf9" - integrity sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA== +"react-refresh@>=0.9 <=0.16": + version "0.16.0" + resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.16.0.tgz#e7d45625f05c9709466d09348a25d22f79b2ad23" + integrity sha512-FPvF2XxTSikpJxcr+bHut2H4gJ17+18Uy20D5/F+SKzFap62R3cM5wH6b8WN3LyGSYeQilLEcJcR1fjBSI2S1A== readable-stream@^2.0.5, readable-stream@^2.3.8: version "2.3.8" @@ -10712,6 +10793,15 @@ typescript-eslint@^8.26.0: "@typescript-eslint/parser" "8.26.0" "@typescript-eslint/utils" "8.26.0" +typescript-eslint@^8.27.0: + version "8.27.0" + resolved "https://registry.yarnpkg.com/typescript-eslint/-/typescript-eslint-8.27.0.tgz#96cc34213723ec41a0bcaffc808f04c8d3cd64fb" + integrity sha512-ZZ/8+Y0rRUMuW1gJaPtLWe4ryHbsPLzzibk5Sq+IFa2aOH1Vo0gPr1fbA6pOnzBke7zC2Da4w8AyCgxKXo3lqA== + dependencies: + "@typescript-eslint/eslint-plugin" "8.27.0" + "@typescript-eslint/parser" "8.27.0" + "@typescript-eslint/utils" "8.27.0" + typescript@5.7.3: version "5.7.3" resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.7.3.tgz#919b44a7dbb8583a9b856d162be24a54bf80073e" @@ -10909,10 +10999,10 @@ vite-hot-client@^0.2.4: resolved "https://registry.yarnpkg.com/vite-hot-client/-/vite-hot-client-0.2.4.tgz#c88789f1615cf4e95690cd5fca98b2e449a29637" integrity sha512-a1nzURqO7DDmnXqabFOliz908FRmIppkBKsJthS8rbe8hBEXwEwe4C3Pp33Z1JoFCYfVL4kTOMLKk0ZZxREIeA== -vite-plugin-checker@^0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/vite-plugin-checker/-/vite-plugin-checker-0.9.0.tgz#9af2d6e28a8fda9278bad376e79edca81f0e6d42" - integrity sha512-gf/zc0KWX8ATEOgnpgAM1I+IbvWkkO80RB+FxlLtC5cabXSesbJmAUw6E+mMDDMGIT+VHAktmxJZpMTt3lSubQ== +vite-plugin-checker@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/vite-plugin-checker/-/vite-plugin-checker-0.9.1.tgz#9f2166047848cc9199ff05e61d12d0480b680604" + integrity sha512-neH3CSNWdkZ+zi+WPt/0y5+IO2I0UAI0NX6MaXqU/KxN1Lz6np/7IooRB6VVAMBa4nigqm1GRF6qNa4+EL5jDQ== dependencies: "@babel/code-frame" "^7.26.2" chokidar "^4.0.3"