diff --git a/.github/workflows/essai.yml b/.github/workflows/essai.yml new file mode 100644 index 0000000..0c79213 --- /dev/null +++ b/.github/workflows/essai.yml @@ -0,0 +1,84 @@ +name: ci:test +on: + # Triggers the workflow on push or pull request events but only for the master branch + push: + branches: [master] + pull_request: + branches: [master] +jobs: + test: + name: Continuous integration (tests) + runs-on: ubuntu-latest + steps: + - name: Setup Node + uses: actions/setup-node@v4.0.2 + with: + node-version: 20.9.0 + + - name: Checkout 🛎️ + uses: actions/checkout@v4.1.1 + + - name: Set $PATH 🪜 + run: echo "$HOME/.meteor" >> $GITHUB_PATH + - name: essai + run: sudo apt-get install inotify-tools + - name: Watch + run: bash "$HOME/work/VueGPX/VueGPX/watch.sh" & + - name: Set env.METEOR_RELEASE 📻 + run: echo "METEOR_RELEASE=$(cat .meteor/release | cut -d@ -f2)" >> $GITHUB_ENV + + - name: Cache ~/.meteor (Meteor ${{ env.METEOR_RELEASE }}) 💿 + uses: actions/cache@v4.0.0 + id: cache-meteor + env: + cache-name: cache-meteor + with: + path: ~/.meteor + key: ${{ runner.os }}-test-${{ env.cache-name }}-${{ env.METEOR_RELEASE }}-${{ hashFiles('.meteor/release') }}-${{ hashFiles('.meteor/versions') }} + restore-keys: | + ${{ runner.os }}-test-${{ env.cache-name }}-${{ env.METEOR_RELEASE }}-${{ hashFiles('.meteor/release') }}- + ${{ runner.os }}-test-${{ env.cache-name }}-${{ env.METEOR_RELEASE }}- + - name: Install Meteor ${{ env.METEOR_RELEASE }} ☄️ + if: steps.cache-meteor.outputs.cache-hit != 'true' + run: curl https://install.meteor.com?release=${{ env.METEOR_RELEASE }} | sh + + - name: Cache ~/.npm 📀 + uses: actions/cache@v4.0.0 + env: + cache-name: cache-npm + with: + path: ~/.npm + key: ${{ runner.os }}-test-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }} + restore-keys: | + ${{ runner.os }}-test-${{ env.cache-name }}- + ${{ runner.os }}-test- + ${{ runner.os }}- + - name: Cache ./node_modules 💽 + uses: actions/cache@v4.0.0 + id: cache-node-modules + env: + cache-name: cache-node-modules + with: + path: ./node_modules + key: ${{ runner.os }}-test-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }} + + - name: Cache Cypress binary + uses: actions/cache@v4 + with: + path: ~/.cache/Cypress + key: cypress-${{ runner.os }}-cypress-${{ hashFiles('**/package-lock.json') }} + + - name: Cypress + uses: cypress-io/github-action@v6 + with: + record: true + start: meteor npm start + wait-on: 'http://127.0.0.1:3000' + wait-on-timeout: 600 + command: meteor npm test + # build: npx cypress info + env: + # pass the Cypress Cloud record key as an environment variable + CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }} + # pass the project ID from the secrets through environment variable + CYPRESS_PROJECT_ID: ${{ secrets.PROJECT_ID }} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ad1676a --- /dev/null +++ b/.gitignore @@ -0,0 +1,13 @@ +node_modules/ +.VSCodeCounter/ +.meteor/local/ +.cache/ +.scannerwork/ +.coverage/ +.cypress-coverage +.vite-inspect/ +.vscode/ +.nyc_output/ +settings-production.json +settings-development.json +mobile-config.js \ No newline at end of file diff --git a/.meteor/.finished-upgraders b/.meteor/.finished-upgraders new file mode 100644 index 0000000..c07b6ff --- /dev/null +++ b/.meteor/.finished-upgraders @@ -0,0 +1,19 @@ +# This file contains information which helps Meteor properly upgrade your +# app when you run 'meteor update'. You should check it into version control +# with your project. + +notices-for-0.9.0 +notices-for-0.9.1 +0.9.4-platform-file +notices-for-facebook-graph-api-2 +1.2.0-standard-minifiers-package +1.2.0-meteor-platform-split +1.2.0-cordova-changes +1.2.0-breaking-changes +1.3.0-split-minifiers-package +1.4.0-remove-old-dev-bundle-link +1.4.1-add-shell-server-package +1.4.3-split-account-service-packages +1.5-add-dynamic-import-package +1.7-split-underscore-from-meteor-base +1.8.3-split-jquery-from-blaze diff --git a/.meteor/.gitignore b/.meteor/.gitignore new file mode 100644 index 0000000..4083037 --- /dev/null +++ b/.meteor/.gitignore @@ -0,0 +1 @@ +local diff --git a/.meteor/.id b/.meteor/.id new file mode 100644 index 0000000..3d8c2a0 --- /dev/null +++ b/.meteor/.id @@ -0,0 +1,7 @@ +# This file contains a token that is unique to your project. +# Check it into your repository along with the rest of this directory. +# It can be used for purposes such as: +# - ensuring you don't accidentally deploy one app on top of another +# - providing package authors with aggregated statistics + +ynjkvapwlqmn.oho93hivg92 diff --git a/.meteor/packages b/.meteor/packages new file mode 100644 index 0000000..b8a756a --- /dev/null +++ b/.meteor/packages @@ -0,0 +1,23 @@ +# Meteor packages used by this project, one per line. +# Check this file (and the other files in this directory) into your repository. +# +# 'meteor add' and 'meteor remove' will edit this file for you, +# but you can also edit it by hand. + +meteor-base@1.5.2-beta300.4 # Packages every Meteor app needs to have +mobile-experience@1.1.1-beta300.4 # Packages for a great mobile UX +mongo@2.0.0-beta300.4 # The database Meteor supports right now +reactive-var@1.0.13-beta300.4 # Reactive variable for tracker + +standard-minifier-css@1.9.3-beta300.4 # CSS minifier run for production mode +standard-minifier-js@3.0.0-beta300.4 # JS minifier run for production mode +es5-shim@4.8.1-beta300.4 # ECMAScript 5 compatibility for older browsers +ecmascript@0.16.8-beta300.4 # Enable ECMAScript2015+ syntax in app code +typescript@5.3.3-beta300.4 # Enable TypeScript syntax in .ts and .tsx modules +shell-server@0.6.0-beta300.4 # Server-side component of the `meteor shell` command +hot-module-replacement@0.5.4-beta300.4 # Update client in development without reloading the page + +static-html@1.3.3-beta300.4 # Define static page content in .html files +jorgenvatle:vite-bundler@2.0.0-beta.8 + + diff --git a/.meteor/platforms b/.meteor/platforms new file mode 100644 index 0000000..efeba1b --- /dev/null +++ b/.meteor/platforms @@ -0,0 +1,2 @@ +server +browser diff --git a/.meteor/release b/.meteor/release new file mode 100644 index 0000000..c12e27c --- /dev/null +++ b/.meteor/release @@ -0,0 +1 @@ +METEOR@3.0-beta.4 diff --git a/.meteor/versions b/.meteor/versions new file mode 100644 index 0000000..82feeb1 --- /dev/null +++ b/.meteor/versions @@ -0,0 +1,73 @@ +allow-deny@2.0.0-beta300.4 +autoupdate@2.0.0-beta300.4 +babel-compiler@7.11.0-beta300.4 +babel-runtime@1.5.2-beta300.4 +base64@1.0.13-beta300.4 +binary-heap@1.0.12-beta300.4 +blaze-tools@2.0.0-alpha300.17 +boilerplate-generator@2.0.0-beta300.4 +caching-compiler@2.0.0-beta300.4 +caching-html-compiler@2.0.0-alpha300.17 +callback-hook@1.6.0-beta300.4 +check@1.3.3-beta300.4 +core-runtime@1.0.0-beta300.4 +ddp@1.4.2-beta300.4 +ddp-client@3.0.0-beta300.4 +ddp-common@1.4.1-beta300.4 +ddp-server@3.0.0-beta300.4 +diff-sequence@1.1.3-beta300.4 +dynamic-import@0.7.4-beta300.4 +ecmascript@0.16.8-beta300.4 +ecmascript-runtime@0.8.2-beta300.4 +ecmascript-runtime-client@0.12.2-beta300.4 +ecmascript-runtime-server@0.11.1-beta300.4 +ejson@1.1.4-beta300.4 +es5-shim@4.8.1-beta300.4 +facts-base@1.0.2-beta300.4 +fetch@0.1.4-beta300.4 +geojson-utils@1.0.12-beta300.4 +hot-code-push@1.0.5-beta300.4 +hot-module-replacement@0.5.4-beta300.4 +html-tools@2.0.0-alpha300.17 +htmljs@2.0.0-alpha300.17 +id-map@1.2.0-beta300.4 +inter-process-messaging@0.1.2-beta300.4 +jorgenvatle:vite-bundler@2.0.0-beta.8 +launch-screen@1.3.1-beta300.4 +logging@1.3.3-beta300.4 +meteor@2.0.0-beta300.4 +meteor-base@1.5.2-beta300.4 +minifier-css@2.0.0-beta300.4 +minifier-js@3.0.0-beta300.4 +minimongo@2.0.0-beta300.4 +mobile-experience@1.1.1-beta300.4 +mobile-status-bar@1.1.1-beta300.4 +modern-browsers@0.1.10-beta300.4 +modules@0.19.1-beta300.4 +modules-runtime@0.13.2-beta300.4 +modules-runtime-hot@0.14.3-beta300.4 +mongo@2.0.0-beta300.4 +mongo-decimal@0.1.4-beta300.4 +mongo-dev-server@1.1.1-beta300.4 +mongo-id@1.0.9-beta300.4 +npm-mongo@4.16.1-beta300.4 +ordered-dict@1.2.0-beta300.4 +promise@1.0.0-beta300.4 +random@1.2.2-beta300.4 +react-fast-refresh@0.2.8-beta300.4 +reactive-var@1.0.13-beta300.4 +reload@1.3.2-beta300.4 +retry@1.1.1-beta300.4 +routepolicy@1.1.2-beta300.4 +shell-server@0.6.0-beta300.4 +socket-stream-client@0.5.2-beta300.4 +spacebars-compiler@2.0.0-alpha300.17 +standard-minifier-css@1.9.3-beta300.4 +standard-minifier-js@3.0.0-beta300.4 +static-html@1.3.3-beta300.4 +templating-tools@2.0.0-alpha300.17 +tracker@1.3.3-beta300.4 +typescript@5.3.3-beta300.4 +underscore@1.0.14-beta300.4 +webapp@2.0.0-beta300.4 +webapp-hashing@1.1.2-beta300.4 diff --git a/README.md b/README.md new file mode 100644 index 0000000..7ba6226 --- /dev/null +++ b/README.md @@ -0,0 +1,19 @@ +# Meteor + Vue3 + Vite + +This is a simple example of how to use Vue3 with Meteor. + +## How to use + +1. Clone this repo +2. Run `meteor npm install` +3. Run `meteor` +4. Open `http://localhost:3000` in your browser + +## Libraries used + +- [Vue3](https://v3.vuejs.org/) +- [Vite](https://vitejs.dev/) +- [Vue Router](https://next.router.vuejs.org/) +- [Meteor](https://www.meteor.com/) +- [Vue Meteor Tracker](https://github.com/meteor-vue/vue-meteor-tracker) +- [Tailwind CSS](https://tailwindcss.com/) diff --git a/client/_vite-bundle/meteor-entry.js._vite-bundle.tmp b/client/_vite-bundle/meteor-entry.js._vite-bundle.tmp new file mode 100644 index 0000000..6119868 --- /dev/null +++ b/client/_vite-bundle/meteor-entry.js._vite-bundle.tmp @@ -0,0 +1 @@ +// Stub file for Meteor-Vite diff --git a/client/main.css b/client/main.css new file mode 100644 index 0000000..b5c61c9 --- /dev/null +++ b/client/main.css @@ -0,0 +1,3 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; diff --git a/client/main.html b/client/main.html new file mode 100644 index 0000000..5ca5c19 --- /dev/null +++ b/client/main.html @@ -0,0 +1,9 @@ + + cypressActions + + + + + +
+ diff --git a/client/main.js b/client/main.js new file mode 100644 index 0000000..97d382a --- /dev/null +++ b/client/main.js @@ -0,0 +1 @@ +// main entry point is in imports/ui/main.jsx diff --git a/cypress.config.js b/cypress.config.js new file mode 100644 index 0000000..8816568 --- /dev/null +++ b/cypress.config.js @@ -0,0 +1,67 @@ +const { defineConfig } = require('cypress'); +//const vitePreprocessor = require('cypress-vite'); + +// tests/cypress/plugins/seeder.js + +const path = require('path'); + +const { Seeder } = require('mongo-seeding'); +const config = { + database: 'mongodb://localhost:3001/meteor', + dropDatabase: true +}; +const seeder = new Seeder(config); +const collections = seeder.readCollectionsFromPath( + path.resolve('./tests/cypress/data') +); + +module.exports = defineConfig({ + // setupNodeEvents can be defined in either + // the e2e or component configuration + + pageLoadTimeout: 120000, + video: true, + fixturesFolder: 'tests/cypress/fixtures', + // + //pluginsFile: "tests/cypress/plugins/index.js", + screenshotsFolder: 'tests/cypress/screenshots', + //, + videosFolder: 'tests/cypress/videos', + //experimentalComponentTesting: true, + + env: { + baseUrl: 'http://localhost:3000', + codeCoverage: { + url: 'http://localhost:3000/__coverage__' + } + }, + e2e: { + supportFile: 'tests/cypress/support/index.js', + specPattern: 'tests/cypress/integration/*.spec.js', + setupNodeEvents(on, config) { + require('@cypress/code-coverage/task')(on, config); + on('task', { + async 'seed:database'() { + await seeder.import(collections); + // > If you do not need to return a value, explicitly return null to + // > signal that the given event has been handled. + return null; + } + }); + // on('file:preprocessor', vitePreprocessor()); + // on('file:preprocessor', require('@cypress/code-coverage/use-babelrc')); + // `on` is used to hook into various events Cypress emits. + // `config` is the resolved Cypress config. + // require('./seeder')(on, config); + return config; + } + }, + component: { + supportFile: 'tests/cypress/support/component.js', + indexHtmlFile: 'tests/cypress/support/component-index.html', + devServer: { + framework: 'vue', + bundler: 'vite' + } + } +}); diff --git a/imports/api/links.js b/imports/api/links.js new file mode 100644 index 0000000..4e98fcc --- /dev/null +++ b/imports/api/links.js @@ -0,0 +1,10 @@ +import { Meteor } from 'meteor/meteor' +import { Mongo } from 'meteor/mongo' + +export const LinksCollection = new Mongo.Collection('links') + +if (Meteor.isServer) { + Meteor.publish('links', function () { + return LinksCollection.find({}) + }) +} diff --git a/imports/ui/About.vue b/imports/ui/About.vue new file mode 100644 index 0000000..d1ba384 --- /dev/null +++ b/imports/ui/About.vue @@ -0,0 +1,5 @@ + diff --git a/imports/ui/App.vue b/imports/ui/App.vue new file mode 100644 index 0000000..7a77539 --- /dev/null +++ b/imports/ui/App.vue @@ -0,0 +1,10 @@ + + + diff --git a/imports/ui/AppMenu.vue b/imports/ui/AppMenu.vue new file mode 100644 index 0000000..5b1997e --- /dev/null +++ b/imports/ui/AppMenu.vue @@ -0,0 +1,6 @@ + diff --git a/imports/ui/Hello.vue b/imports/ui/Hello.vue new file mode 100644 index 0000000..ebe691f --- /dev/null +++ b/imports/ui/Hello.vue @@ -0,0 +1,16 @@ + + + diff --git a/imports/ui/Home.vue b/imports/ui/Home.vue new file mode 100644 index 0000000..0473845 --- /dev/null +++ b/imports/ui/Home.vue @@ -0,0 +1,10 @@ + + + diff --git a/imports/ui/Info.vue b/imports/ui/Info.vue new file mode 100644 index 0000000..5a17339 --- /dev/null +++ b/imports/ui/Info.vue @@ -0,0 +1,16 @@ + + + diff --git a/imports/ui/main.js b/imports/ui/main.js new file mode 100644 index 0000000..e350084 --- /dev/null +++ b/imports/ui/main.js @@ -0,0 +1,13 @@ +import { Meteor } from 'meteor/meteor' +import { createApp } from 'vue' +import { VueMeteor } from 'vue-meteor-tracker' + +import App from './App.vue' +import { router } from './router' + +Meteor.startup(() => { + const app = createApp(App) + app.use(router) + app.use(VueMeteor) + app.mount('#app') +}) diff --git a/imports/ui/router.js b/imports/ui/router.js new file mode 100644 index 0000000..b271e02 --- /dev/null +++ b/imports/ui/router.js @@ -0,0 +1,19 @@ +import { createRouter, createWebHistory } from 'vue-router' +import Home from './Home.vue' +import About from './About.vue' + +export const router = createRouter({ + history: createWebHistory(), + routes: [ + { + path: '/', + name: 'home', + component: Home, + }, + { + path: '/about', + name: 'about', + component: About, + }, + ], +}) diff --git a/jsconfig.json b/jsconfig.json new file mode 100644 index 0000000..3d9114c --- /dev/null +++ b/jsconfig.json @@ -0,0 +1,58 @@ +{ + "compilerOptions": { + "checkJs": true, + "allowJs": true, + "jsx": "react", + "baseUrl": ".", + "paths": { + "/*": [ + "./*" + ], + "meteor/mongo": [ + "/home/harry/.meteor/packages/mongo/2.0.0-beta300.4/web.browser/local_collection_driver.js", + "/home/harry/.meteor/packages/mongo/2.0.0-beta300.4/web.browser/collection.js", + "/home/harry/.meteor/packages/mongo/2.0.0-beta300.4/web.browser/connection_options.js", + "/home/harry/.meteor/packages/mongo/2.0.0-beta300.4/web.browser/doc_fetcher.js", + "/home/harry/.meteor/packages/mongo/2.0.0-beta300.4/web.browser/mongo_driver.js", + "/home/harry/.meteor/packages/mongo/2.0.0-beta300.4/web.browser/mongo_utils.js", + "/home/harry/.meteor/packages/mongo/2.0.0-beta300.4/web.browser/observe_multiplex.js", + "/home/harry/.meteor/packages/mongo/2.0.0-beta300.4/web.browser/oplog_observe_driver.js", + "/home/harry/.meteor/packages/mongo/2.0.0-beta300.4/web.browser/oplog_tailing.js", + "/home/harry/.meteor/packages/mongo/2.0.0-beta300.4/web.browser/oplog_v2_converter.js", + "/home/harry/.meteor/packages/mongo/2.0.0-beta300.4/web.browser/polling_observe_driver.js", + "/home/harry/.meteor/packages/mongo/2.0.0-beta300.4/web.browser/remote_collection_driver.js" + ], + "meteor/reactive-var": [ + "/home/harry/.meteor/packages/reactive-var/1.0.13-beta300.4/web.browser/reactive-var.js" + ], + "meteor/es5-shim": [ + "/home/harry/.meteor/packages/es5-shim/4.8.1-beta300.4/web.browser/client.js", + "/home/harry/.meteor/packages/es5-shim/4.8.1-beta300.4/web.browser/console.js", + "/home/harry/.meteor/packages/es5-shim/4.8.1-beta300.4/web.browser/cordova.js", + "/home/harry/.meteor/packages/es5-shim/4.8.1-beta300.4/web.browser/export_globals.js", + "/home/harry/.meteor/packages/es5-shim/4.8.1-beta300.4/web.browser/import_globals.js" + ], + "meteor/ecmascript": [ + "/home/harry/.meteor/packages/ecmascript/0.16.8-beta300.4/web.browser/ecmascript.js" + ], + "meteor/shell-server": [ + "/home/harry/.meteor/packages/shell-server/0.6.0-beta300.4/web.browser/main.js", + "/home/harry/.meteor/packages/shell-server/0.6.0-beta300.4/web.browser/shell-server.js" + ], + "meteor/hot-module-replacement": [ + "/home/harry/.meteor/packages/hot-module-replacement/0.5.4-beta300.4/web.browser/hot-api.js", + "/home/harry/.meteor/packages/hot-module-replacement/0.5.4-beta300.4/web.browser/client.js", + "/home/harry/.meteor/packages/hot-module-replacement/0.5.4-beta300.4/web.browser/server.js" + ] + } + }, + "typeAcquisition": { + "include": [ + "meteor" + ] + }, + "exclude": [ + "node_modules", + ".meteor" + ] +} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..12f3c57 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,11542 @@ +{ + "name": "cypressActions", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "cypressActions", + "dependencies": { + "@babel/runtime": "^7.23.5", + "cypress": "^13.6.6", + "meteor-node-stubs": "^1.2.7", + "meteor-vite": "^1.10.1", + "vue": "^3.3.9", + "vue-meteor-tracker": "^3.0.0-beta.7", + "vue-router": "^4.2.5" + }, + "devDependencies": { + "@cypress/code-coverage": "^3.12.26", + "@types/meteor": "^2.9.7", + "@vitejs/plugin-vue": "^3.2.0", + "autoprefixer": "^10.4.16", + "mongo-seeding": "^4.0.0", + "nyc": "^15.1.0", + "postcss": "^8.4.31", + "tailwindcss": "^3.3.5", + "vite": "^3.2.7", + "vite-plugin-istanbul": "^5.0.0" + } + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@aws-crypto/crc32": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/crc32/-/crc32-3.0.0.tgz", + "integrity": "sha512-IzSgsrxUcsrejQbPVilIKy16kAT52EwB6zSaI+M3xxIhKh5+aldEyvI+z6erM7TCLB2BJsFrtHjp6/4/sr+3dA==", + "dev": true, + "optional": true, + "dependencies": { + "@aws-crypto/util": "^3.0.0", + "@aws-sdk/types": "^3.222.0", + "tslib": "^1.11.1" + } + }, + "node_modules/@aws-crypto/crc32/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true, + "optional": true + }, + "node_modules/@aws-crypto/ie11-detection": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/ie11-detection/-/ie11-detection-3.0.0.tgz", + "integrity": "sha512-341lBBkiY1DfDNKai/wXM3aujNBkXR7tq1URPQDL9wi3AUbI80NR74uF1TXHMm7po1AcnFk8iu2S2IeU/+/A+Q==", + "dev": true, + "optional": true, + "dependencies": { + "tslib": "^1.11.1" + } + }, + "node_modules/@aws-crypto/ie11-detection/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true, + "optional": true + }, + "node_modules/@aws-crypto/sha256-browser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-3.0.0.tgz", + "integrity": "sha512-8VLmW2B+gjFbU5uMeqtQM6Nj0/F1bro80xQXCW6CQBWgosFWXTx77aeOF5CAIAmbOK64SdMBJdNr6J41yP5mvQ==", + "dev": true, + "optional": true, + "dependencies": { + "@aws-crypto/ie11-detection": "^3.0.0", + "@aws-crypto/sha256-js": "^3.0.0", + "@aws-crypto/supports-web-crypto": "^3.0.0", + "@aws-crypto/util": "^3.0.0", + "@aws-sdk/types": "^3.222.0", + "@aws-sdk/util-locate-window": "^3.0.0", + "@aws-sdk/util-utf8-browser": "^3.0.0", + "tslib": "^1.11.1" + } + }, + "node_modules/@aws-crypto/sha256-browser/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true, + "optional": true + }, + "node_modules/@aws-crypto/sha256-js": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-3.0.0.tgz", + "integrity": "sha512-PnNN7os0+yd1XvXAy23CFOmTbMaDxgxXtTKHybrJ39Y8kGzBATgBFibWJKH6BhytLI/Zyszs87xCOBNyBig6vQ==", + "dev": true, + "optional": true, + "dependencies": { + "@aws-crypto/util": "^3.0.0", + "@aws-sdk/types": "^3.222.0", + "tslib": "^1.11.1" + } + }, + "node_modules/@aws-crypto/sha256-js/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true, + "optional": true + }, + "node_modules/@aws-crypto/supports-web-crypto": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-3.0.0.tgz", + "integrity": "sha512-06hBdMwUAb2WFTuGG73LSC0wfPu93xWwo5vL2et9eymgmu3Id5vFAHBbajVWiGhPO37qcsdCap/FqXvJGJWPIg==", + "dev": true, + "optional": true, + "dependencies": { + "tslib": "^1.11.1" + } + }, + "node_modules/@aws-crypto/supports-web-crypto/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true, + "optional": true + }, + "node_modules/@aws-crypto/util": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-3.0.0.tgz", + "integrity": "sha512-2OJlpeJpCR48CC8r+uKVChzs9Iungj9wkZrl8Z041DWEWvyIHILYKCPNzJghKsivj+S3mLo6BVc7mBNzdxA46w==", + "dev": true, + "optional": true, + "dependencies": { + "@aws-sdk/types": "^3.222.0", + "@aws-sdk/util-utf8-browser": "^3.0.0", + "tslib": "^1.11.1" + } + }, + "node_modules/@aws-crypto/util/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true, + "optional": true + }, + "node_modules/@aws-sdk/client-cognito-identity": { + "version": "3.525.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.525.0.tgz", + "integrity": "sha512-LxI9rfn6Vy/EX6I7as14PAKqAhUwVQviaMV/xCLQIubgdVj1xfexVURdiSk7GQshpcwtrs+GQWV21yP+3AX/7A==", + "dev": true, + "optional": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/client-sts": "3.525.0", + "@aws-sdk/core": "3.525.0", + "@aws-sdk/credential-provider-node": "3.525.0", + "@aws-sdk/middleware-host-header": "3.523.0", + "@aws-sdk/middleware-logger": "3.523.0", + "@aws-sdk/middleware-recursion-detection": "3.523.0", + "@aws-sdk/middleware-user-agent": "3.525.0", + "@aws-sdk/region-config-resolver": "3.525.0", + "@aws-sdk/types": "3.523.0", + "@aws-sdk/util-endpoints": "3.525.0", + "@aws-sdk/util-user-agent-browser": "3.523.0", + "@aws-sdk/util-user-agent-node": "3.525.0", + "@smithy/config-resolver": "^2.1.4", + "@smithy/core": "^1.3.5", + "@smithy/fetch-http-handler": "^2.4.3", + "@smithy/hash-node": "^2.1.3", + "@smithy/invalid-dependency": "^2.1.3", + "@smithy/middleware-content-length": "^2.1.3", + "@smithy/middleware-endpoint": "^2.4.4", + "@smithy/middleware-retry": "^2.1.4", + "@smithy/middleware-serde": "^2.1.3", + "@smithy/middleware-stack": "^2.1.3", + "@smithy/node-config-provider": "^2.2.4", + "@smithy/node-http-handler": "^2.4.1", + "@smithy/protocol-http": "^3.2.1", + "@smithy/smithy-client": "^2.4.2", + "@smithy/types": "^2.10.1", + "@smithy/url-parser": "^2.1.3", + "@smithy/util-base64": "^2.1.1", + "@smithy/util-body-length-browser": "^2.1.1", + "@smithy/util-body-length-node": "^2.2.1", + "@smithy/util-defaults-mode-browser": "^2.1.4", + "@smithy/util-defaults-mode-node": "^2.2.3", + "@smithy/util-endpoints": "^1.1.4", + "@smithy/util-middleware": "^2.1.3", + "@smithy/util-retry": "^2.1.3", + "@smithy/util-utf8": "^2.1.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sso": { + "version": "3.525.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.525.0.tgz", + "integrity": "sha512-6KwGQWFoNLH1UupdWPFdKPfTgjSz1kN8/r8aCzuvvXBe4Pz+iDUZ6FEJzGWNc9AapjvZDNO1hs23slomM9rTaA==", + "dev": true, + "optional": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/core": "3.525.0", + "@aws-sdk/middleware-host-header": "3.523.0", + "@aws-sdk/middleware-logger": "3.523.0", + "@aws-sdk/middleware-recursion-detection": "3.523.0", + "@aws-sdk/middleware-user-agent": "3.525.0", + "@aws-sdk/region-config-resolver": "3.525.0", + "@aws-sdk/types": "3.523.0", + "@aws-sdk/util-endpoints": "3.525.0", + "@aws-sdk/util-user-agent-browser": "3.523.0", + "@aws-sdk/util-user-agent-node": "3.525.0", + "@smithy/config-resolver": "^2.1.4", + "@smithy/core": "^1.3.5", + "@smithy/fetch-http-handler": "^2.4.3", + "@smithy/hash-node": "^2.1.3", + "@smithy/invalid-dependency": "^2.1.3", + "@smithy/middleware-content-length": "^2.1.3", + "@smithy/middleware-endpoint": "^2.4.4", + "@smithy/middleware-retry": "^2.1.4", + "@smithy/middleware-serde": "^2.1.3", + "@smithy/middleware-stack": "^2.1.3", + "@smithy/node-config-provider": "^2.2.4", + "@smithy/node-http-handler": "^2.4.1", + "@smithy/protocol-http": "^3.2.1", + "@smithy/smithy-client": "^2.4.2", + "@smithy/types": "^2.10.1", + "@smithy/url-parser": "^2.1.3", + "@smithy/util-base64": "^2.1.1", + "@smithy/util-body-length-browser": "^2.1.1", + "@smithy/util-body-length-node": "^2.2.1", + "@smithy/util-defaults-mode-browser": "^2.1.4", + "@smithy/util-defaults-mode-node": "^2.2.3", + "@smithy/util-endpoints": "^1.1.4", + "@smithy/util-middleware": "^2.1.3", + "@smithy/util-retry": "^2.1.3", + "@smithy/util-utf8": "^2.1.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sso-oidc": { + "version": "3.525.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.525.0.tgz", + "integrity": "sha512-zz13k/6RkjPSLmReSeGxd8wzGiiZa4Odr2Tv3wTcxClM4wOjD+zOgGv4Fe32b9AMqaueiCdjbvdu7AKcYxFA4A==", + "dev": true, + "optional": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/client-sts": "3.525.0", + "@aws-sdk/core": "3.525.0", + "@aws-sdk/middleware-host-header": "3.523.0", + "@aws-sdk/middleware-logger": "3.523.0", + "@aws-sdk/middleware-recursion-detection": "3.523.0", + "@aws-sdk/middleware-user-agent": "3.525.0", + "@aws-sdk/region-config-resolver": "3.525.0", + "@aws-sdk/types": "3.523.0", + "@aws-sdk/util-endpoints": "3.525.0", + "@aws-sdk/util-user-agent-browser": "3.523.0", + "@aws-sdk/util-user-agent-node": "3.525.0", + "@smithy/config-resolver": "^2.1.4", + "@smithy/core": "^1.3.5", + "@smithy/fetch-http-handler": "^2.4.3", + "@smithy/hash-node": "^2.1.3", + "@smithy/invalid-dependency": "^2.1.3", + "@smithy/middleware-content-length": "^2.1.3", + "@smithy/middleware-endpoint": "^2.4.4", + "@smithy/middleware-retry": "^2.1.4", + "@smithy/middleware-serde": "^2.1.3", + "@smithy/middleware-stack": "^2.1.3", + "@smithy/node-config-provider": "^2.2.4", + "@smithy/node-http-handler": "^2.4.1", + "@smithy/protocol-http": "^3.2.1", + "@smithy/smithy-client": "^2.4.2", + "@smithy/types": "^2.10.1", + "@smithy/url-parser": "^2.1.3", + "@smithy/util-base64": "^2.1.1", + "@smithy/util-body-length-browser": "^2.1.1", + "@smithy/util-body-length-node": "^2.2.1", + "@smithy/util-defaults-mode-browser": "^2.1.4", + "@smithy/util-defaults-mode-node": "^2.2.3", + "@smithy/util-endpoints": "^1.1.4", + "@smithy/util-middleware": "^2.1.3", + "@smithy/util-retry": "^2.1.3", + "@smithy/util-utf8": "^2.1.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "@aws-sdk/credential-provider-node": "^3.525.0" + } + }, + "node_modules/@aws-sdk/client-sts": { + "version": "3.525.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.525.0.tgz", + "integrity": "sha512-a8NUGRvO6rkfTZCbMaCsjDjLbERCwIUU9dIywFYcRgbFhkupJ7fSaZz3Het98U51M9ZbTEpaTa3fz0HaJv8VJw==", + "dev": true, + "optional": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/core": "3.525.0", + "@aws-sdk/middleware-host-header": "3.523.0", + "@aws-sdk/middleware-logger": "3.523.0", + "@aws-sdk/middleware-recursion-detection": "3.523.0", + "@aws-sdk/middleware-user-agent": "3.525.0", + "@aws-sdk/region-config-resolver": "3.525.0", + "@aws-sdk/types": "3.523.0", + "@aws-sdk/util-endpoints": "3.525.0", + "@aws-sdk/util-user-agent-browser": "3.523.0", + "@aws-sdk/util-user-agent-node": "3.525.0", + "@smithy/config-resolver": "^2.1.4", + "@smithy/core": "^1.3.5", + "@smithy/fetch-http-handler": "^2.4.3", + "@smithy/hash-node": "^2.1.3", + "@smithy/invalid-dependency": "^2.1.3", + "@smithy/middleware-content-length": "^2.1.3", + "@smithy/middleware-endpoint": "^2.4.4", + "@smithy/middleware-retry": "^2.1.4", + "@smithy/middleware-serde": "^2.1.3", + "@smithy/middleware-stack": "^2.1.3", + "@smithy/node-config-provider": "^2.2.4", + "@smithy/node-http-handler": "^2.4.1", + "@smithy/protocol-http": "^3.2.1", + "@smithy/smithy-client": "^2.4.2", + "@smithy/types": "^2.10.1", + "@smithy/url-parser": "^2.1.3", + "@smithy/util-base64": "^2.1.1", + "@smithy/util-body-length-browser": "^2.1.1", + "@smithy/util-body-length-node": "^2.2.1", + "@smithy/util-defaults-mode-browser": "^2.1.4", + "@smithy/util-defaults-mode-node": "^2.2.3", + "@smithy/util-endpoints": "^1.1.4", + "@smithy/util-middleware": "^2.1.3", + "@smithy/util-retry": "^2.1.3", + "@smithy/util-utf8": "^2.1.1", + "fast-xml-parser": "4.2.5", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "@aws-sdk/credential-provider-node": "^3.525.0" + } + }, + "node_modules/@aws-sdk/core": { + "version": "3.525.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.525.0.tgz", + "integrity": "sha512-E3LtEtMWCriQOFZpVKpLYzbdw/v2PAOEAMhn2VRRZ1g0/g1TXzQrfhEU2yd8l/vQEJaCJ82ooGGg7YECviBUxA==", + "dev": true, + "optional": true, + "dependencies": { + "@smithy/core": "^1.3.5", + "@smithy/protocol-http": "^3.2.1", + "@smithy/signature-v4": "^2.1.3", + "@smithy/smithy-client": "^2.4.2", + "@smithy/types": "^2.10.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-cognito-identity": { + "version": "3.525.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.525.0.tgz", + "integrity": "sha512-0djjCN/zN6QFQt1xU64VBOSRP4wJckU6U7FjLPrGpL6w03hF0dUmVUXjhQZe5WKNPCicVc2S3BYPohl/PzCx1w==", + "dev": true, + "optional": true, + "dependencies": { + "@aws-sdk/client-cognito-identity": "3.525.0", + "@aws-sdk/types": "3.523.0", + "@smithy/property-provider": "^2.1.3", + "@smithy/types": "^2.10.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-env": { + "version": "3.523.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.523.0.tgz", + "integrity": "sha512-Y6DWdH6/OuMDoNKVzZlNeBc6f1Yjk1lYMjANKpIhMbkRCvLJw/PYZKOZa8WpXbTYdgg9XLjKybnLIb3ww3uuzA==", + "dev": true, + "optional": true, + "dependencies": { + "@aws-sdk/types": "3.523.0", + "@smithy/property-provider": "^2.1.3", + "@smithy/types": "^2.10.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-http": { + "version": "3.525.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.525.0.tgz", + "integrity": "sha512-RNWQGuSBQZhl3iqklOslUEfQ4br1V3DCPboMpeqFtddUWJV3m2u2extFur9/4Uy+1EHVF120IwZUKtd8dF+ibw==", + "dev": true, + "optional": true, + "dependencies": { + "@aws-sdk/types": "3.523.0", + "@smithy/fetch-http-handler": "^2.4.3", + "@smithy/node-http-handler": "^2.4.1", + "@smithy/property-provider": "^2.1.3", + "@smithy/protocol-http": "^3.2.1", + "@smithy/smithy-client": "^2.4.2", + "@smithy/types": "^2.10.1", + "@smithy/util-stream": "^2.1.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-ini": { + "version": "3.525.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.525.0.tgz", + "integrity": "sha512-JDnccfK5JRb9jcgpc9lirL9PyCwGIqY0nKdw3LlX5WL5vTpTG4E1q7rLAlpNh7/tFD1n66Itarfv2tsyHMIqCw==", + "dev": true, + "optional": true, + "dependencies": { + "@aws-sdk/client-sts": "3.525.0", + "@aws-sdk/credential-provider-env": "3.523.0", + "@aws-sdk/credential-provider-process": "3.523.0", + "@aws-sdk/credential-provider-sso": "3.525.0", + "@aws-sdk/credential-provider-web-identity": "3.525.0", + "@aws-sdk/types": "3.523.0", + "@smithy/credential-provider-imds": "^2.2.3", + "@smithy/property-provider": "^2.1.3", + "@smithy/shared-ini-file-loader": "^2.3.3", + "@smithy/types": "^2.10.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-node": { + "version": "3.525.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.525.0.tgz", + "integrity": "sha512-RJXlO8goGXpnoHQAyrCcJ0QtWEOFa34LSbfdqBIjQX/fwnjUuEmiGdXTV3AZmwYQ7juk49tfBneHbtOP3AGqsQ==", + "dev": true, + "optional": true, + "dependencies": { + "@aws-sdk/credential-provider-env": "3.523.0", + "@aws-sdk/credential-provider-http": "3.525.0", + "@aws-sdk/credential-provider-ini": "3.525.0", + "@aws-sdk/credential-provider-process": "3.523.0", + "@aws-sdk/credential-provider-sso": "3.525.0", + "@aws-sdk/credential-provider-web-identity": "3.525.0", + "@aws-sdk/types": "3.523.0", + "@smithy/credential-provider-imds": "^2.2.3", + "@smithy/property-provider": "^2.1.3", + "@smithy/shared-ini-file-loader": "^2.3.3", + "@smithy/types": "^2.10.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-process": { + "version": "3.523.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.523.0.tgz", + "integrity": "sha512-f0LP9KlFmMvPWdKeUKYlZ6FkQAECUeZMmISsv6NKtvPCI9e4O4cLTeR09telwDK8P0HrgcRuZfXM7E30m8re0Q==", + "dev": true, + "optional": true, + "dependencies": { + "@aws-sdk/types": "3.523.0", + "@smithy/property-provider": "^2.1.3", + "@smithy/shared-ini-file-loader": "^2.3.3", + "@smithy/types": "^2.10.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-sso": { + "version": "3.525.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.525.0.tgz", + "integrity": "sha512-7V7ybtufxdD3plxeIeB6aqHZeFIUlAyPphXIUgXrGY10iNcosL970rQPBeggsohe4gCM6UvY2TfMeEcr+ZE8FA==", + "dev": true, + "optional": true, + "dependencies": { + "@aws-sdk/client-sso": "3.525.0", + "@aws-sdk/token-providers": "3.525.0", + "@aws-sdk/types": "3.523.0", + "@smithy/property-provider": "^2.1.3", + "@smithy/shared-ini-file-loader": "^2.3.3", + "@smithy/types": "^2.10.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-web-identity": { + "version": "3.525.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.525.0.tgz", + "integrity": "sha512-sAukOjR1oKb2JXG4nPpuBFpSwGUhrrY17PG/xbTy8NAoLLhrqRwnErcLfdTfmj6tH+3094k6ws/Sh8a35ae7fA==", + "dev": true, + "optional": true, + "dependencies": { + "@aws-sdk/client-sts": "3.525.0", + "@aws-sdk/types": "3.523.0", + "@smithy/property-provider": "^2.1.3", + "@smithy/types": "^2.10.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-providers": { + "version": "3.525.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-providers/-/credential-providers-3.525.0.tgz", + "integrity": "sha512-zj439Ok1s44nahIJKpBM4jhAxnSw20flXQpMD2aeGdvUuKm2xmzZP0lX5z9a+XQWFtNh251ZcSt2p+RwtLKtiw==", + "dev": true, + "optional": true, + "dependencies": { + "@aws-sdk/client-cognito-identity": "3.525.0", + "@aws-sdk/client-sso": "3.525.0", + "@aws-sdk/client-sts": "3.525.0", + "@aws-sdk/credential-provider-cognito-identity": "3.525.0", + "@aws-sdk/credential-provider-env": "3.523.0", + "@aws-sdk/credential-provider-http": "3.525.0", + "@aws-sdk/credential-provider-ini": "3.525.0", + "@aws-sdk/credential-provider-node": "3.525.0", + "@aws-sdk/credential-provider-process": "3.523.0", + "@aws-sdk/credential-provider-sso": "3.525.0", + "@aws-sdk/credential-provider-web-identity": "3.525.0", + "@aws-sdk/types": "3.523.0", + "@smithy/credential-provider-imds": "^2.2.3", + "@smithy/property-provider": "^2.1.3", + "@smithy/types": "^2.10.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-host-header": { + "version": "3.523.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.523.0.tgz", + "integrity": "sha512-4g3q7Ta9sdD9TMUuohBAkbx/e3I/juTqfKi7TPgP+8jxcYX72MOsgemAMHuP6CX27eyj4dpvjH+w4SIVDiDSmg==", + "dev": true, + "optional": true, + "dependencies": { + "@aws-sdk/types": "3.523.0", + "@smithy/protocol-http": "^3.2.1", + "@smithy/types": "^2.10.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-logger": { + "version": "3.523.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.523.0.tgz", + "integrity": "sha512-PeDNJNhfiaZx54LBaLTXzUaJ9LXFwDFFIksipjqjvxMafnoVcQwKbkoPUWLe5ytT4nnL1LogD3s55mERFUsnwg==", + "dev": true, + "optional": true, + "dependencies": { + "@aws-sdk/types": "3.523.0", + "@smithy/types": "^2.10.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-recursion-detection": { + "version": "3.523.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.523.0.tgz", + "integrity": "sha512-nZ3Vt7ehfSDYnrcg/aAfjjvpdE+61B3Zk68i6/hSUIegT3IH9H1vSW67NDKVp+50hcEfzWwM2HMPXxlzuyFyrw==", + "dev": true, + "optional": true, + "dependencies": { + "@aws-sdk/types": "3.523.0", + "@smithy/protocol-http": "^3.2.1", + "@smithy/types": "^2.10.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-user-agent": { + "version": "3.525.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.525.0.tgz", + "integrity": "sha512-4al/6uO+t/QIYXK2OgqzDKQzzLAYJza1vWFS+S0lJ3jLNGyLB5BMU5KqWjDzevYZ4eCnz2Nn7z0FveUTNz8YdQ==", + "dev": true, + "optional": true, + "dependencies": { + "@aws-sdk/types": "3.523.0", + "@aws-sdk/util-endpoints": "3.525.0", + "@smithy/protocol-http": "^3.2.1", + "@smithy/types": "^2.10.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/region-config-resolver": { + "version": "3.525.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.525.0.tgz", + "integrity": "sha512-8kFqXk6UyKgTMi7N7QlhA6qM4pGPWbiUXqEY2RgUWngtxqNFGeM9JTexZeuavQI+qLLe09VPShPNX71fEDcM6w==", + "dev": true, + "optional": true, + "dependencies": { + "@aws-sdk/types": "3.523.0", + "@smithy/node-config-provider": "^2.2.4", + "@smithy/types": "^2.10.1", + "@smithy/util-config-provider": "^2.2.1", + "@smithy/util-middleware": "^2.1.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/token-providers": { + "version": "3.525.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.525.0.tgz", + "integrity": "sha512-puVjbxuK0Dq7PTQ2HdddHy2eQjOH8GZbump74yWJa6JVpRW84LlOcNmP+79x4Kscvz2ldWB8XDFw/pcCiSDe5A==", + "dev": true, + "optional": true, + "dependencies": { + "@aws-sdk/client-sso-oidc": "3.525.0", + "@aws-sdk/types": "3.523.0", + "@smithy/property-provider": "^2.1.3", + "@smithy/shared-ini-file-loader": "^2.3.3", + "@smithy/types": "^2.10.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/types": { + "version": "3.523.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.523.0.tgz", + "integrity": "sha512-AqGIu4u+SxPiUuNBp2acCVcq80KDUFjxe6e3cMTvKWTzCbrVk1AXv0dAaJnCmdkWIha6zJDWxpIk/aL4EGhZ9A==", + "dev": true, + "optional": true, + "dependencies": { + "@smithy/types": "^2.10.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/util-endpoints": { + "version": "3.525.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.525.0.tgz", + "integrity": "sha512-DIW7WWU5tIGkeeKX6NJUyrEIdWMiqjLQG3XBzaUj+ufIENwNjdAHhlD8l2vX7Yr3JZRT6yN/84wBCj7Tw1xd1g==", + "dev": true, + "optional": true, + "dependencies": { + "@aws-sdk/types": "3.523.0", + "@smithy/types": "^2.10.1", + "@smithy/util-endpoints": "^1.1.4", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/util-locate-window": { + "version": "3.495.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.495.0.tgz", + "integrity": "sha512-MfaPXT0kLX2tQaR90saBT9fWQq2DHqSSJRzW+MZWsmF+y5LGCOhO22ac/2o6TKSQm7h0HRc2GaADqYYYor62yg==", + "dev": true, + "optional": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/util-user-agent-browser": { + "version": "3.523.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.523.0.tgz", + "integrity": "sha512-6ZRNdGHX6+HQFqTbIA5+i8RWzxFyxsZv8D3soRfpdyWIKkzhSz8IyRKXRciwKBJDaC7OX2jzGE90wxRQft27nA==", + "dev": true, + "optional": true, + "dependencies": { + "@aws-sdk/types": "3.523.0", + "@smithy/types": "^2.10.1", + "bowser": "^2.11.0", + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-sdk/util-user-agent-node": { + "version": "3.525.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.525.0.tgz", + "integrity": "sha512-88Wjt4efyUSBGcyIuh1dvoMqY1k15jpJc5A/3yi67clBQEFsu9QCodQCQPqmRjV3VRcMtBOk+jeCTiUzTY5dRQ==", + "dev": true, + "optional": true, + "dependencies": { + "@aws-sdk/types": "3.523.0", + "@smithy/node-config-provider": "^2.2.4", + "@smithy/types": "^2.10.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "aws-crt": ">=1.0.0" + }, + "peerDependenciesMeta": { + "aws-crt": { + "optional": true + } + } + }, + "node_modules/@aws-sdk/util-utf8-browser": { + "version": "3.259.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.259.0.tgz", + "integrity": "sha512-UvFa/vR+e19XookZF8RzFZBrw2EUkQWxiBW0yYQAhvk3C+QVGl0H3ouca8LDBlBfQKXwmW3huo/59H8rwb1wJw==", + "dev": true, + "optional": true, + "dependencies": { + "tslib": "^2.3.1" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", + "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", + "dependencies": { + "@babel/highlight": "^7.23.4", + "chalk": "^2.4.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", + "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.0.tgz", + "integrity": "sha512-fQfkg0Gjkza3nf0c7/w6Xf34BW4YvzNfACRLmmb7XRLa6XHdR+K9AlJlxneFfWYf6uhOzuzZVTjF/8KfndZANw==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.24.0", + "@babel/parser": "^7.24.0", + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.0", + "@babel/types": "^7.24.0", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", + "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", + "dependencies": { + "@babel/types": "^7.23.6", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", + "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", + "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.23.5", + "@babel/helper-validator-option": "^7.23.5", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.0.tgz", + "integrity": "sha512-QAH+vfvts51BCsNZ2PhY6HAggnlS6omLLFTsIpeqZk/MmJ6cW7tgz5yRv0fMJThcr6FmbMrENh1RgrWPTYA76g==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-member-expression-to-functions": "^7.23.0", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "peer": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", + "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "peer": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.5.0.tgz", + "integrity": "sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", + "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", + "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", + "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", + "dev": true, + "peer": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", + "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-wrap-function": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", + "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-member-expression-to-functions": "^7.22.15", + "@babel/helper-optimise-call-expression": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", + "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", + "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", + "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-function-name": "^7.22.5", + "@babel/template": "^7.22.15", + "@babel/types": "^7.22.19" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.0.tgz", + "integrity": "sha512-ulDZdc0Aj5uLc5nETsa7EPx2L7rM0YJM8r7ck7U73AXi7qOV44IHHRAYZHY6iU1rr3C5N4NtTmMRUJP6kwCWeA==", + "dev": true, + "dependencies": { + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.0", + "@babel/types": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.0.tgz", + "integrity": "sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz", + "integrity": "sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz", + "integrity": "sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.23.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.7.tgz", + "integrity": "sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "dev": true, + "peer": true, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz", + "integrity": "sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz", + "integrity": "sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz", + "integrity": "sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.9.tgz", + "integrity": "sha512-8Q3veQEDGe14dTYuwagbRtwxQDnytyg1JFu4/HwEMETeofocrB0U0ejBJIXoeG/t2oXZ8kzCyI0ZZfbT80VFNQ==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.20", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz", + "integrity": "sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz", + "integrity": "sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz", + "integrity": "sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz", + "integrity": "sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz", + "integrity": "sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.23.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.8.tgz", + "integrity": "sha512-yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20", + "@babel/helper-split-export-declaration": "^7.22.6", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz", + "integrity": "sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/template": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz", + "integrity": "sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz", + "integrity": "sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz", + "integrity": "sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz", + "integrity": "sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz", + "integrity": "sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz", + "integrity": "sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.6.tgz", + "integrity": "sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz", + "integrity": "sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz", + "integrity": "sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz", + "integrity": "sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz", + "integrity": "sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz", + "integrity": "sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz", + "integrity": "sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz", + "integrity": "sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.9.tgz", + "integrity": "sha512-KDlPRM6sLo4o1FkiSlXoAa8edLXFsKKIda779fbLrvmeuc3itnjCtaO6RrtoaANsIJANj+Vk1zqbZIMhkCAHVw==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz", + "integrity": "sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", + "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz", + "integrity": "sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz", + "integrity": "sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz", + "integrity": "sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.0.tgz", + "integrity": "sha512-y/yKMm7buHpFFXfxVFS4Vk1ToRJDilIa6fKRioB9Vjichv58TDGXTvqV0dN7plobAmTW5eSEGXDngE+Mm+uO+w==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/compat-data": "^7.23.5", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.23.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz", + "integrity": "sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz", + "integrity": "sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz", + "integrity": "sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz", + "integrity": "sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz", + "integrity": "sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz", + "integrity": "sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz", + "integrity": "sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz", + "integrity": "sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "regenerator-transform": "^0.15.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz", + "integrity": "sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz", + "integrity": "sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz", + "integrity": "sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz", + "integrity": "sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz", + "integrity": "sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz", + "integrity": "sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz", + "integrity": "sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz", + "integrity": "sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz", + "integrity": "sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz", + "integrity": "sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.0.tgz", + "integrity": "sha512-ZxPEzV9IgvGn73iK0E6VB9/95Nd7aMFpbE0l8KQFDG70cOV9IxRP7Y2FUPmlK0v6ImlLqYX50iuZ3ZTVhOF2lA==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/compat-data": "^7.23.5", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-validator-option": "^7.23.5", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.23.3", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.23.3", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.23.7", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.23.3", + "@babel/plugin-syntax-import-attributes": "^7.23.3", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.23.3", + "@babel/plugin-transform-async-generator-functions": "^7.23.9", + "@babel/plugin-transform-async-to-generator": "^7.23.3", + "@babel/plugin-transform-block-scoped-functions": "^7.23.3", + "@babel/plugin-transform-block-scoping": "^7.23.4", + "@babel/plugin-transform-class-properties": "^7.23.3", + "@babel/plugin-transform-class-static-block": "^7.23.4", + "@babel/plugin-transform-classes": "^7.23.8", + "@babel/plugin-transform-computed-properties": "^7.23.3", + "@babel/plugin-transform-destructuring": "^7.23.3", + "@babel/plugin-transform-dotall-regex": "^7.23.3", + "@babel/plugin-transform-duplicate-keys": "^7.23.3", + "@babel/plugin-transform-dynamic-import": "^7.23.4", + "@babel/plugin-transform-exponentiation-operator": "^7.23.3", + "@babel/plugin-transform-export-namespace-from": "^7.23.4", + "@babel/plugin-transform-for-of": "^7.23.6", + "@babel/plugin-transform-function-name": "^7.23.3", + "@babel/plugin-transform-json-strings": "^7.23.4", + "@babel/plugin-transform-literals": "^7.23.3", + "@babel/plugin-transform-logical-assignment-operators": "^7.23.4", + "@babel/plugin-transform-member-expression-literals": "^7.23.3", + "@babel/plugin-transform-modules-amd": "^7.23.3", + "@babel/plugin-transform-modules-commonjs": "^7.23.3", + "@babel/plugin-transform-modules-systemjs": "^7.23.9", + "@babel/plugin-transform-modules-umd": "^7.23.3", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", + "@babel/plugin-transform-new-target": "^7.23.3", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.23.4", + "@babel/plugin-transform-numeric-separator": "^7.23.4", + "@babel/plugin-transform-object-rest-spread": "^7.24.0", + "@babel/plugin-transform-object-super": "^7.23.3", + "@babel/plugin-transform-optional-catch-binding": "^7.23.4", + "@babel/plugin-transform-optional-chaining": "^7.23.4", + "@babel/plugin-transform-parameters": "^7.23.3", + "@babel/plugin-transform-private-methods": "^7.23.3", + "@babel/plugin-transform-private-property-in-object": "^7.23.4", + "@babel/plugin-transform-property-literals": "^7.23.3", + "@babel/plugin-transform-regenerator": "^7.23.3", + "@babel/plugin-transform-reserved-words": "^7.23.3", + "@babel/plugin-transform-shorthand-properties": "^7.23.3", + "@babel/plugin-transform-spread": "^7.23.3", + "@babel/plugin-transform-sticky-regex": "^7.23.3", + "@babel/plugin-transform-template-literals": "^7.23.3", + "@babel/plugin-transform-typeof-symbol": "^7.23.3", + "@babel/plugin-transform-unicode-escapes": "^7.23.3", + "@babel/plugin-transform-unicode-property-regex": "^7.23.3", + "@babel/plugin-transform-unicode-regex": "^7.23.3", + "@babel/plugin-transform-unicode-sets-regex": "^7.23.3", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.8", + "babel-plugin-polyfill-corejs3": "^0.9.0", + "babel-plugin-polyfill-regenerator": "^0.5.5", + "core-js-compat": "^3.31.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "peer": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true, + "peer": true + }, + "node_modules/@babel/runtime": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.0.tgz", + "integrity": "sha512-Chk32uHMg6TnQdvw2e9IlqPpFX/6NLuK0Ys2PqLb7/gL5uFn9mXvK715FGLlOLQrcO4qIkNHkvPGktzzXexsFw==", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", + "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", + "dependencies": { + "@babel/code-frame": "^7.23.5", + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.0.tgz", + "integrity": "sha512-HfuJlI8qq3dEDmNU5ChzzpZRWq+oxCZQyMzIMEqLho+AQnhMnKQUzH6ydo3RBl/YjPCuk68Y6s0Gx0AeyULiWw==", + "dependencies": { + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", + "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", + "dependencies": { + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "optional": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/@cypress/code-coverage": { + "version": "3.12.26", + "resolved": "https://registry.npmjs.org/@cypress/code-coverage/-/code-coverage-3.12.26.tgz", + "integrity": "sha512-fJDELN3BNOPKm8JRZxHN/FrNebXpjX/PAsJYUbqp7SIn7Rk7MlDhKR5T0gFOzhrfvOpKmJ7t0dQf7kqRjb/LOQ==", + "dev": true, + "dependencies": { + "@cypress/webpack-preprocessor": "^6.0.0", + "chalk": "4.1.2", + "dayjs": "1.11.10", + "debug": "4.3.4", + "execa": "4.1.0", + "globby": "11.1.0", + "istanbul-lib-coverage": "^3.0.0", + "js-yaml": "4.1.0", + "nyc": "15.1.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.1", + "@babel/preset-env": "^7.0.0", + "babel-loader": "^8.3 || ^9", + "cypress": "*", + "webpack": "^4 || ^5" + } + }, + "node_modules/@cypress/code-coverage/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@cypress/code-coverage/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/@cypress/code-coverage/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@cypress/code-coverage/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@cypress/code-coverage/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@cypress/code-coverage/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@cypress/code-coverage/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@cypress/code-coverage/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@cypress/request": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@cypress/request/-/request-3.0.1.tgz", + "integrity": "sha512-TWivJlJi8ZDx2wGOw1dbLuHJKUYX7bWySw377nlnGOW3hP9/MUKIsEdXT/YngWxVdgNCHRBmFlBipE+5/2ZZlQ==", + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "http-signature": "~1.3.6", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "performance-now": "^2.1.0", + "qs": "6.10.4", + "safe-buffer": "^5.1.2", + "tough-cookie": "^4.1.3", + "tunnel-agent": "^0.6.0", + "uuid": "^8.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@cypress/webpack-preprocessor": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@cypress/webpack-preprocessor/-/webpack-preprocessor-6.0.1.tgz", + "integrity": "sha512-WVNeFVSnFKxE3WZNRIriduTgqJRpevaiJIPlfqYTTzfXRD7X1Pv4woDE+G4caPV9bJqVKmVFiwzrXMRNeJxpxA==", + "dev": true, + "dependencies": { + "bluebird": "3.7.1", + "debug": "^4.3.4", + "lodash": "^4.17.20" + }, + "peerDependencies": { + "@babel/core": "^7.0.1", + "@babel/preset-env": "^7.0.0", + "babel-loader": "^8.3 || ^9", + "webpack": "^4 || ^5" + } + }, + "node_modules/@cypress/webpack-preprocessor/node_modules/bluebird": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.1.tgz", + "integrity": "sha512-DdmyoGCleJnkbp3nkbxTLJ18rjDsE4yCggEwKNXkeV123sPNfOCYeDoeuOY+F2FrSjO1YXcTU+dsy96KMy+gcg==", + "dev": true + }, + "node_modules/@cypress/xvfb": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.4.tgz", + "integrity": "sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q==", + "dependencies": { + "debug": "^3.1.0", + "lodash.once": "^4.1.1" + } + }, + "node_modules/@cypress/xvfb/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.18.tgz", + "integrity": "sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.18.tgz", + "integrity": "sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ==", + "cpu": [ + "loong64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.4.tgz", + "integrity": "sha512-Oud2QPM5dHviZNn4y/WhhYKSXksv+1xLEIsNrAbGcFzUN3ubqWRFT5gwPchNc5NuzILOU4tPBDTZ4VwhL8Y7cw==", + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", + "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", + "devOptional": true, + "peer": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.23", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.23.tgz", + "integrity": "sha512-9/4foRoUKp8s96tSkh8DlAAc5A0Ty8vLXld+l9gjKKY6ckwI8G15f0hskGmuLZu78ZlGa1vtsfOa+lnB4vG6Jg==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@mongodb-js/saslprep": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.1.4.tgz", + "integrity": "sha512-8zJ8N1x51xo9hwPh6AWnKdLGEC5N3lDa6kms1YHmFBoRhTpJR6HG8wWk0td1MVCu9cD4YBrvjZEtd5Obw0Fbnw==", + "dev": true, + "dependencies": { + "sparse-bitfield": "^3.0.3" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@smithy/abort-controller": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-2.1.3.tgz", + "integrity": "sha512-c2aYH2Wu1RVE3rLlVgg2kQOBJGM0WbjReQi5DnPTm2Zb7F0gk7J2aeQeaX2u/lQZoHl6gv8Oac7mt9alU3+f4A==", + "dev": true, + "optional": true, + "dependencies": { + "@smithy/types": "^2.10.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/config-resolver": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-2.1.4.tgz", + "integrity": "sha512-AW2WUZmBAzgO3V3ovKtsUbI3aBNMeQKFDumoqkNxaVDWF/xfnxAWqBKDr/NuG7c06N2Rm4xeZLPiJH/d+na0HA==", + "dev": true, + "optional": true, + "dependencies": { + "@smithy/node-config-provider": "^2.2.4", + "@smithy/types": "^2.10.1", + "@smithy/util-config-provider": "^2.2.1", + "@smithy/util-middleware": "^2.1.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/core": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@smithy/core/-/core-1.3.5.tgz", + "integrity": "sha512-Rrc+e2Jj6Gu7Xbn0jvrzZlSiP2CZocIOfZ9aNUA82+1sa6GBnxqL9+iZ9EKHeD9aqD1nU8EK4+oN2EiFpSv7Yw==", + "dev": true, + "optional": true, + "dependencies": { + "@smithy/middleware-endpoint": "^2.4.4", + "@smithy/middleware-retry": "^2.1.4", + "@smithy/middleware-serde": "^2.1.3", + "@smithy/protocol-http": "^3.2.1", + "@smithy/smithy-client": "^2.4.2", + "@smithy/types": "^2.10.1", + "@smithy/util-middleware": "^2.1.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/credential-provider-imds": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-2.2.4.tgz", + "integrity": "sha512-DdatjmBZQnhGe1FhI8gO98f7NmvQFSDiZTwC3WMvLTCKQUY+Y1SVkhJqIuLu50Eb7pTheoXQmK+hKYUgpUWsNA==", + "dev": true, + "optional": true, + "dependencies": { + "@smithy/node-config-provider": "^2.2.4", + "@smithy/property-provider": "^2.1.3", + "@smithy/types": "^2.10.1", + "@smithy/url-parser": "^2.1.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/eventstream-codec": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-codec/-/eventstream-codec-2.1.3.tgz", + "integrity": "sha512-rGlCVuwSDv6qfKH4/lRxFjcZQnIE0LZ3D4lkMHg7ZSltK9rA74r0VuGSvWVQ4N/d70VZPaniFhp4Z14QYZsa+A==", + "dev": true, + "optional": true, + "dependencies": { + "@aws-crypto/crc32": "3.0.0", + "@smithy/types": "^2.10.1", + "@smithy/util-hex-encoding": "^2.1.1", + "tslib": "^2.5.0" + } + }, + "node_modules/@smithy/fetch-http-handler": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-2.4.3.tgz", + "integrity": "sha512-Fn/KYJFo6L5I4YPG8WQb2hOmExgRmNpVH5IK2zU3JKrY5FKW7y9ar5e0BexiIC9DhSKqKX+HeWq/Y18fq7Dkpw==", + "dev": true, + "optional": true, + "dependencies": { + "@smithy/protocol-http": "^3.2.1", + "@smithy/querystring-builder": "^2.1.3", + "@smithy/types": "^2.10.1", + "@smithy/util-base64": "^2.1.1", + "tslib": "^2.5.0" + } + }, + "node_modules/@smithy/hash-node": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-2.1.3.tgz", + "integrity": "sha512-FsAPCUj7VNJIdHbSxMd5uiZiF20G2zdSDgrgrDrHqIs/VMxK85Vqk5kMVNNDMCZmMezp6UKnac0B4nAyx7HJ9g==", + "dev": true, + "optional": true, + "dependencies": { + "@smithy/types": "^2.10.1", + "@smithy/util-buffer-from": "^2.1.1", + "@smithy/util-utf8": "^2.1.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/invalid-dependency": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-2.1.3.tgz", + "integrity": "sha512-wkra7d/G4CbngV4xsjYyAYOvdAhahQje/WymuQdVEnXFExJopEu7fbL5AEAlBPgWHXwu94VnCSG00gVzRfExyg==", + "dev": true, + "optional": true, + "dependencies": { + "@smithy/types": "^2.10.1", + "tslib": "^2.5.0" + } + }, + "node_modules/@smithy/is-array-buffer": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.1.1.tgz", + "integrity": "sha512-xozSQrcUinPpNPNPds4S7z/FakDTh1MZWtRP/2vQtYB/u3HYrX2UXuZs+VhaKBd6Vc7g2XPr2ZtwGBNDN6fNKQ==", + "dev": true, + "optional": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/middleware-content-length": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-2.1.3.tgz", + "integrity": "sha512-aJduhkC+dcXxdnv5ZpM3uMmtGmVFKx412R1gbeykS5HXDmRU6oSsyy2SoHENCkfOGKAQOjVE2WVqDJibC0d21g==", + "dev": true, + "optional": true, + "dependencies": { + "@smithy/protocol-http": "^3.2.1", + "@smithy/types": "^2.10.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/middleware-endpoint": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-2.4.4.tgz", + "integrity": "sha512-4yjHyHK2Jul4JUDBo2sTsWY9UshYUnXeb/TAK/MTaPEb8XQvDmpwSFnfIRDU45RY1a6iC9LCnmJNg/yHyfxqkw==", + "dev": true, + "optional": true, + "dependencies": { + "@smithy/middleware-serde": "^2.1.3", + "@smithy/node-config-provider": "^2.2.4", + "@smithy/shared-ini-file-loader": "^2.3.4", + "@smithy/types": "^2.10.1", + "@smithy/url-parser": "^2.1.3", + "@smithy/util-middleware": "^2.1.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/middleware-retry": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-2.1.4.tgz", + "integrity": "sha512-Cyolv9YckZTPli1EkkaS39UklonxMd08VskiuMhURDjC0HHa/AD6aK/YoD21CHv9s0QLg0WMLvk9YeLTKkXaFQ==", + "dev": true, + "optional": true, + "dependencies": { + "@smithy/node-config-provider": "^2.2.4", + "@smithy/protocol-http": "^3.2.1", + "@smithy/service-error-classification": "^2.1.3", + "@smithy/smithy-client": "^2.4.2", + "@smithy/types": "^2.10.1", + "@smithy/util-middleware": "^2.1.3", + "@smithy/util-retry": "^2.1.3", + "tslib": "^2.5.0", + "uuid": "^8.3.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/middleware-serde": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-2.1.3.tgz", + "integrity": "sha512-s76LId+TwASrHhUa9QS4k/zeXDUAuNuddKklQzRgumbzge5BftVXHXIqL4wQxKGLocPwfgAOXWx+HdWhQk9hTg==", + "dev": true, + "optional": true, + "dependencies": { + "@smithy/types": "^2.10.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/middleware-stack": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-2.1.3.tgz", + "integrity": "sha512-opMFufVQgvBSld/b7mD7OOEBxF6STyraVr1xel1j0abVILM8ALJvRoFbqSWHGmaDlRGIiV9Q5cGbWi0sdiEaLQ==", + "dev": true, + "optional": true, + "dependencies": { + "@smithy/types": "^2.10.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/node-config-provider": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-2.2.4.tgz", + "integrity": "sha512-nqazHCp8r4KHSFhRQ+T0VEkeqvA0U+RhehBSr1gunUuNW3X7j0uDrWBxB2gE9eutzy6kE3Y7L+Dov/UXT871vg==", + "dev": true, + "optional": true, + "dependencies": { + "@smithy/property-provider": "^2.1.3", + "@smithy/shared-ini-file-loader": "^2.3.4", + "@smithy/types": "^2.10.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/node-http-handler": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-2.4.1.tgz", + "integrity": "sha512-HCkb94soYhJMxPCa61wGKgmeKpJ3Gftx1XD6bcWEB2wMV1L9/SkQu/6/ysKBnbOzWRE01FGzwrTxucHypZ8rdg==", + "dev": true, + "optional": true, + "dependencies": { + "@smithy/abort-controller": "^2.1.3", + "@smithy/protocol-http": "^3.2.1", + "@smithy/querystring-builder": "^2.1.3", + "@smithy/types": "^2.10.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/property-provider": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-2.1.3.tgz", + "integrity": "sha512-bMz3se+ySKWNrgm7eIiQMa2HO/0fl2D0HvLAdg9pTMcpgp4SqOAh6bz7Ik6y7uQqSrk4rLjIKgbQ6yzYgGehCQ==", + "dev": true, + "optional": true, + "dependencies": { + "@smithy/types": "^2.10.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/protocol-http": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-3.2.1.tgz", + "integrity": "sha512-KLrQkEw4yJCeAmAH7hctE8g9KwA7+H2nSJwxgwIxchbp/L0B5exTdOQi9D5HinPLlothoervGmhpYKelZ6AxIA==", + "dev": true, + "optional": true, + "dependencies": { + "@smithy/types": "^2.10.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/querystring-builder": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-2.1.3.tgz", + "integrity": "sha512-kFD3PnNqKELe6m9GRHQw/ftFFSZpnSeQD4qvgDB6BQN6hREHELSosVFUMPN4M3MDKN2jAwk35vXHLoDrNfKu0A==", + "dev": true, + "optional": true, + "dependencies": { + "@smithy/types": "^2.10.1", + "@smithy/util-uri-escape": "^2.1.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/querystring-parser": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-2.1.3.tgz", + "integrity": "sha512-3+CWJoAqcBMR+yvz6D+Fc5VdoGFtfenW6wqSWATWajrRMGVwJGPT3Vy2eb2bnMktJc4HU4bpjeovFa566P3knQ==", + "dev": true, + "optional": true, + "dependencies": { + "@smithy/types": "^2.10.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/service-error-classification": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-2.1.3.tgz", + "integrity": "sha512-iUrpSsem97bbXHHT/v3s7vaq8IIeMo6P6cXdeYHrx0wOJpMeBGQF7CB0mbJSiTm3//iq3L55JiEm8rA7CTVI8A==", + "dev": true, + "optional": true, + "dependencies": { + "@smithy/types": "^2.10.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/shared-ini-file-loader": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-2.3.4.tgz", + "integrity": "sha512-CiZmPg9GeDKbKmJGEFvJBsJcFnh0AQRzOtQAzj1XEa8N/0/uSN/v1LYzgO7ry8hhO8+9KB7+DhSW0weqBra4Aw==", + "dev": true, + "optional": true, + "dependencies": { + "@smithy/types": "^2.10.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/signature-v4": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-2.1.3.tgz", + "integrity": "sha512-Jq4iPPdCmJojZTsPePn4r1ULShh6ONkokLuxp1Lnk4Sq7r7rJp4HlA1LbPBq4bD64TIzQezIpr1X+eh5NYkNxw==", + "dev": true, + "optional": true, + "dependencies": { + "@smithy/eventstream-codec": "^2.1.3", + "@smithy/is-array-buffer": "^2.1.1", + "@smithy/types": "^2.10.1", + "@smithy/util-hex-encoding": "^2.1.1", + "@smithy/util-middleware": "^2.1.3", + "@smithy/util-uri-escape": "^2.1.1", + "@smithy/util-utf8": "^2.1.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/smithy-client": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-2.4.2.tgz", + "integrity": "sha512-ntAFYN51zu3N3mCd95YFcFi/8rmvm//uX+HnK24CRbI6k5Rjackn0JhgKz5zOx/tbNvOpgQIwhSX+1EvEsBLbA==", + "dev": true, + "optional": true, + "dependencies": { + "@smithy/middleware-endpoint": "^2.4.4", + "@smithy/middleware-stack": "^2.1.3", + "@smithy/protocol-http": "^3.2.1", + "@smithy/types": "^2.10.1", + "@smithy/util-stream": "^2.1.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/types": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-2.10.1.tgz", + "integrity": "sha512-hjQO+4ru4cQ58FluQvKKiyMsFg0A6iRpGm2kqdH8fniyNd2WyanoOsYJfMX/IFLuLxEoW6gnRkNZy1y6fUUhtA==", + "dev": true, + "optional": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/url-parser": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-2.1.3.tgz", + "integrity": "sha512-X1NRA4WzK/ihgyzTpeGvI9Wn45y8HmqF4AZ/FazwAv8V203Ex+4lXqcYI70naX9ETqbqKVzFk88W6WJJzCggTQ==", + "dev": true, + "optional": true, + "dependencies": { + "@smithy/querystring-parser": "^2.1.3", + "@smithy/types": "^2.10.1", + "tslib": "^2.5.0" + } + }, + "node_modules/@smithy/util-base64": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@smithy/util-base64/-/util-base64-2.1.1.tgz", + "integrity": "sha512-UfHVpY7qfF/MrgndI5PexSKVTxSZIdz9InghTFa49QOvuu9I52zLPLUHXvHpNuMb1iD2vmc6R+zbv/bdMipR/g==", + "dev": true, + "optional": true, + "dependencies": { + "@smithy/util-buffer-from": "^2.1.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/util-body-length-browser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@smithy/util-body-length-browser/-/util-body-length-browser-2.1.1.tgz", + "integrity": "sha512-ekOGBLvs1VS2d1zM2ER4JEeBWAvIOUKeaFch29UjjJsxmZ/f0L3K3x0dEETgh3Q9bkZNHgT+rkdl/J/VUqSRag==", + "dev": true, + "optional": true, + "dependencies": { + "tslib": "^2.5.0" + } + }, + "node_modules/@smithy/util-body-length-node": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@smithy/util-body-length-node/-/util-body-length-node-2.2.1.tgz", + "integrity": "sha512-/ggJG+ta3IDtpNVq4ktmEUtOkH1LW64RHB5B0hcr5ZaWBmo96UX2cIOVbjCqqDickTXqBWZ4ZO0APuaPrD7Abg==", + "dev": true, + "optional": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/util-buffer-from": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.1.1.tgz", + "integrity": "sha512-clhNjbyfqIv9Md2Mg6FffGVrJxw7bgK7s3Iax36xnfVj6cg0fUG7I4RH0XgXJF8bxi+saY5HR21g2UPKSxVCXg==", + "dev": true, + "optional": true, + "dependencies": { + "@smithy/is-array-buffer": "^2.1.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/util-config-provider": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@smithy/util-config-provider/-/util-config-provider-2.2.1.tgz", + "integrity": "sha512-50VL/tx9oYYcjJn/qKqNy7sCtpD0+s8XEBamIFo4mFFTclKMNp+rsnymD796uybjiIquB7VCB/DeafduL0y2kw==", + "dev": true, + "optional": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/util-defaults-mode-browser": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-2.1.4.tgz", + "integrity": "sha512-J6XAVY+/g7jf03QMnvqPyU+8jqGrrtXoKWFVOS+n1sz0Lg8HjHJ1ANqaDN+KTTKZRZlvG8nU5ZrJOUL6VdwgcQ==", + "dev": true, + "optional": true, + "dependencies": { + "@smithy/property-provider": "^2.1.3", + "@smithy/smithy-client": "^2.4.2", + "@smithy/types": "^2.10.1", + "bowser": "^2.11.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@smithy/util-defaults-mode-node": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-2.2.3.tgz", + "integrity": "sha512-ttUISrv1uVOjTlDa3nznX33f0pthoUlP+4grhTvOzcLhzArx8qHB94/untGACOG3nlf8vU20nI2iWImfzoLkYA==", + "dev": true, + "optional": true, + "dependencies": { + "@smithy/config-resolver": "^2.1.4", + "@smithy/credential-provider-imds": "^2.2.4", + "@smithy/node-config-provider": "^2.2.4", + "@smithy/property-provider": "^2.1.3", + "@smithy/smithy-client": "^2.4.2", + "@smithy/types": "^2.10.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@smithy/util-endpoints": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-1.1.4.tgz", + "integrity": "sha512-/qAeHmK5l4yQ4/bCIJ9p49wDe9rwWtOzhPHblu386fwPNT3pxmodgcs9jDCV52yK9b4rB8o9Sj31P/7Vzka1cg==", + "dev": true, + "optional": true, + "dependencies": { + "@smithy/node-config-provider": "^2.2.4", + "@smithy/types": "^2.10.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@smithy/util-hex-encoding": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@smithy/util-hex-encoding/-/util-hex-encoding-2.1.1.tgz", + "integrity": "sha512-3UNdP2pkYUUBGEXzQI9ODTDK+Tcu1BlCyDBaRHwyxhA+8xLP8agEKQq4MGmpjqb4VQAjq9TwlCQX0kP6XDKYLg==", + "dev": true, + "optional": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/util-middleware": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-2.1.3.tgz", + "integrity": "sha512-/+2fm7AZ2ozl5h8wM++ZP0ovE9/tiUUAHIbCfGfb3Zd3+Dyk17WODPKXBeJ/TnK5U+x743QmA0xHzlSm8I/qhw==", + "dev": true, + "optional": true, + "dependencies": { + "@smithy/types": "^2.10.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/util-retry": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-2.1.3.tgz", + "integrity": "sha512-Kbvd+GEMuozbNUU3B89mb99tbufwREcyx2BOX0X2+qHjq6Gvsah8xSDDgxISDwcOHoDqUWO425F0Uc/QIRhYkg==", + "dev": true, + "optional": true, + "dependencies": { + "@smithy/service-error-classification": "^2.1.3", + "@smithy/types": "^2.10.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@smithy/util-stream": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-2.1.3.tgz", + "integrity": "sha512-HvpEQbP8raTy9n86ZfXiAkf3ezp1c3qeeO//zGqwZdrfaoOpGKQgF2Sv1IqZp7wjhna7pvczWaGUHjcOPuQwKw==", + "dev": true, + "optional": true, + "dependencies": { + "@smithy/fetch-http-handler": "^2.4.3", + "@smithy/node-http-handler": "^2.4.1", + "@smithy/types": "^2.10.1", + "@smithy/util-base64": "^2.1.1", + "@smithy/util-buffer-from": "^2.1.1", + "@smithy/util-hex-encoding": "^2.1.1", + "@smithy/util-utf8": "^2.1.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/util-uri-escape": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@smithy/util-uri-escape/-/util-uri-escape-2.1.1.tgz", + "integrity": "sha512-saVzI1h6iRBUVSqtnlOnc9ssU09ypo7n+shdQ8hBTZno/9rZ3AuRYvoHInV57VF7Qn7B+pFJG7qTzFiHxWlWBw==", + "dev": true, + "optional": true, + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/util-utf8": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.1.1.tgz", + "integrity": "sha512-BqTpzYEcUMDwAKr7/mVRUtHDhs6ZoXDi9NypMvMfOr/+u1NW7JgqodPDECiiLboEm6bobcPcECxzjtQh865e9A==", + "dev": true, + "optional": true, + "dependencies": { + "@smithy/util-buffer-from": "^2.1.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/eslint": { + "version": "8.56.5", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.5.tgz", + "integrity": "sha512-u5/YPJHo1tvkSF2CE0USEkxon82Z5DBy2xR+qfyYNszpX9qcs4sT6uq2kBbj4BXY1+DBGDPnrhMZV3pKWGNukw==", + "dev": true, + "peer": true, + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "dev": true, + "peer": true, + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dev": true, + "peer": true + }, + "node_modules/@types/jquery": { + "version": "3.5.29", + "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.29.tgz", + "integrity": "sha512-oXQQC9X9MOPRrMhPHHOsXqeQDnWeCDT3PelUIg/Oy8FAbzSZtFHRjc7IpbfFVmpLtJ+UOoywpRsuO5Jxjybyeg==", + "dev": true, + "dependencies": { + "@types/sizzle": "*" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "peer": true + }, + "node_modules/@types/meteor": { + "version": "2.9.8", + "resolved": "https://registry.npmjs.org/@types/meteor/-/meteor-2.9.8.tgz", + "integrity": "sha512-p96s1lMqtwt0hz50yokQJA+V9BQzNMLJfahwlbbfXKwbI/OMNCKhRfnxiiNROXAF080zctJlEcpjmv0YG7ztkA==", + "dev": true, + "dependencies": { + "@types/connect": "*", + "@types/jquery": "*", + "@types/node": "*", + "@types/nodemailer": "*", + "@types/react": "*", + "@types/underscore": "*", + "mongodb": "^4.3.1" + } + }, + "node_modules/@types/node": { + "version": "20.11.24", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.24.tgz", + "integrity": "sha512-Kza43ewS3xoLgCEpQrsT+xRo/EJej1y0kVYGiLFE1NEODXGzTfwiC6tXTLMQskn1X4/Rjlh0MQUvx9W+L9long==", + "devOptional": true, + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/nodemailer": { + "version": "6.4.14", + "resolved": "https://registry.npmjs.org/@types/nodemailer/-/nodemailer-6.4.14.tgz", + "integrity": "sha512-fUWthHO9k9DSdPCSPRqcu6TWhYyxTBg382vlNIttSe9M7XfsT06y0f24KHXtbnijPGGRIcVvdKHTNikOI6qiHA==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/prop-types": { + "version": "15.7.11", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.11.tgz", + "integrity": "sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==", + "dev": true + }, + "node_modules/@types/react": { + "version": "18.2.61", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.61.tgz", + "integrity": "sha512-NURTN0qNnJa7O/k4XUkEW2yfygA+NxS0V5h1+kp9jPwhzZy95q3ADoGMP0+JypMhrZBTTgjKAUlTctde1zzeQA==", + "dev": true, + "dependencies": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/scheduler": { + "version": "0.16.8", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz", + "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==", + "dev": true + }, + "node_modules/@types/sinonjs__fake-timers": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz", + "integrity": "sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g==" + }, + "node_modules/@types/sizzle": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.8.tgz", + "integrity": "sha512-0vWLNK2D5MT9dg0iOo8GlKguPAU02QjmZitPEsXRuJXU/OGIOt9vT9Fc26wtYuavLxtO45v9PGleoL9Z0k1LHg==" + }, + "node_modules/@types/underscore": { + "version": "1.11.15", + "resolved": "https://registry.npmjs.org/@types/underscore/-/underscore-1.11.15.tgz", + "integrity": "sha512-HP38xE+GuWGlbSRq9WrZkousaQ7dragtZCruBVMi0oX1migFZavZ3OROKHSkNp/9ouq82zrWtZpg18jFnVN96g==", + "dev": true + }, + "node_modules/@types/webidl-conversions": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.3.tgz", + "integrity": "sha512-CiJJvcRtIgzadHCYXw7dqEnMNRjhGZlYK05Mj9OyktqV8uVT8fD2BFOB7S1uwBE3Kj2Z+4UyPmFw/Ixgw/LAlA==", + "dev": true + }, + "node_modules/@types/whatwg-url": { + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-8.2.2.tgz", + "integrity": "sha512-FtQu10RWgn3D9U4aazdwIE2yzphmTJREDqNdODHrbrZmmMqI0vMheC/6NE/J1Yveaj8H+ela+YwWTjq5PGmuhA==", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/webidl-conversions": "*" + } + }, + "node_modules/@types/yauzl": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", + "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@vitejs/plugin-vue": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-3.2.0.tgz", + "integrity": "sha512-E0tnaL4fr+qkdCNxJ+Xd0yM31UwMkQje76fsDVBBUCoGOUPexu2VDUYHL8P4CwV+zMvWw6nlRw19OnRKmYAJpw==", + "dev": true, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^3.0.0", + "vue": "^3.2.25" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.4.21", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.21.tgz", + "integrity": "sha512-MjXawxZf2SbZszLPYxaFCjxfibYrzr3eYbKxwpLR9EQN+oaziSu3qKVbwBERj1IFIB8OLUewxB5m/BFzi613og==", + "dependencies": { + "@babel/parser": "^7.23.9", + "@vue/shared": "3.4.21", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.0.2" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.4.21", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.21.tgz", + "integrity": "sha512-IZC6FKowtT1sl0CR5DpXSiEB5ayw75oT2bma1BEhV7RRR1+cfwLrxc2Z8Zq/RGFzJ8w5r9QtCOvTjQgdn0IKmA==", + "dependencies": { + "@vue/compiler-core": "3.4.21", + "@vue/shared": "3.4.21" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.4.21", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.21.tgz", + "integrity": "sha512-me7epoTxYlY+2CUM7hy9PCDdpMPfIwrOvAXud2Upk10g4YLv9UBW7kL798TvMeDhPthkZ0CONNrK2GoeI1ODiQ==", + "dependencies": { + "@babel/parser": "^7.23.9", + "@vue/compiler-core": "3.4.21", + "@vue/compiler-dom": "3.4.21", + "@vue/compiler-ssr": "3.4.21", + "@vue/shared": "3.4.21", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.7", + "postcss": "^8.4.35", + "source-map-js": "^1.0.2" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.4.21", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.21.tgz", + "integrity": "sha512-M5+9nI2lPpAsgXOGQobnIueVqc9sisBFexh5yMIMRAPYLa7+5wEJs8iqOZc1WAa9WQbx9GR2twgznU8LTIiZ4Q==", + "dependencies": { + "@vue/compiler-dom": "3.4.21", + "@vue/shared": "3.4.21" + } + }, + "node_modules/@vue/devtools-api": { + "version": "6.6.1", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.1.tgz", + "integrity": "sha512-LgPscpE3Vs0x96PzSSB4IGVSZXZBZHpfxs+ZA1d+VEPwHdOXowy/Y2CsvCAIFrf+ssVU1pD1jidj505EpUnfbA==" + }, + "node_modules/@vue/reactivity": { + "version": "3.4.21", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.21.tgz", + "integrity": "sha512-UhenImdc0L0/4ahGCyEzc/pZNwVgcglGy9HVzJ1Bq2Mm9qXOpP8RyNTjookw/gOCUlXSEtuZ2fUg5nrHcoqJcw==", + "dependencies": { + "@vue/shared": "3.4.21" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.4.21", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.21.tgz", + "integrity": "sha512-pQthsuYzE1XcGZznTKn73G0s14eCJcjaLvp3/DKeYWoFacD9glJoqlNBxt3W2c5S40t6CCcpPf+jG01N3ULyrA==", + "dependencies": { + "@vue/reactivity": "3.4.21", + "@vue/shared": "3.4.21" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.4.21", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.21.tgz", + "integrity": "sha512-gvf+C9cFpevsQxbkRBS1NpU8CqxKw0ebqMvLwcGQrNpx6gqRDodqKqA+A2VZZpQ9RpK2f9yfg8VbW/EpdFUOJw==", + "dependencies": { + "@vue/runtime-core": "3.4.21", + "@vue/shared": "3.4.21", + "csstype": "^3.1.3" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.4.21", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.21.tgz", + "integrity": "sha512-aV1gXyKSN6Rz+6kZ6kr5+Ll14YzmIbeuWe7ryJl5muJ4uwSwY/aStXTixx76TwkZFJLm1aAlA/HSWEJ4EyiMkg==", + "dependencies": { + "@vue/compiler-ssr": "3.4.21", + "@vue/shared": "3.4.21" + }, + "peerDependencies": { + "vue": "3.4.21" + } + }, + "node_modules/@vue/shared": { + "version": "3.4.21", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.21.tgz", + "integrity": "sha512-PuJe7vDIi6VYSinuEbUIQgMIRZGgM8e4R+G+/dQTk0X1NEdvgvvgv7m+rfmDH1gZzyA1OjjoWskvHlfRNfQf3g==" + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", + "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==", + "dev": true, + "peer": true, + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", + "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", + "dev": true, + "peer": true + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", + "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", + "dev": true, + "peer": true + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", + "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==", + "dev": true, + "peer": true + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", + "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", + "dev": true, + "peer": true, + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", + "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", + "dev": true, + "peer": true + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", + "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==", + "dev": true, + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", + "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "dev": true, + "peer": true, + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", + "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "dev": true, + "peer": true, + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", + "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", + "dev": true, + "peer": true + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", + "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==", + "dev": true, + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/helper-wasm-section": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-opt": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6", + "@webassemblyjs/wast-printer": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", + "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==", + "dev": true, + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", + "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==", + "dev": true, + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", + "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==", + "dev": true, + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", + "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==", + "dev": true, + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true, + "peer": true + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true, + "peer": true + }, + "node_modules/acorn": { + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "devOptional": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-assertions": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", + "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", + "dev": true, + "peer": true, + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "peer": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "peer": true, + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "peer": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/append-transform": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", + "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==", + "dev": true, + "dependencies": { + "default-require-extensions": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/arch": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz", + "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==", + "dev": true + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/argparse/node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/async": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", + "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.17", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.17.tgz", + "integrity": "sha512-/cpVNRLSfhOtcGflT13P2794gVSgmPgTR+erw5ifnMLZb0UnSlkK4tquLmkd3BhA+nLo5tX8Cu0upUsGKvKbmg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "browserslist": "^4.22.2", + "caniuse-lite": "^1.0.30001578", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", + "engines": { + "node": "*" + } + }, + "node_modules/aws4": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz", + "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==" + }, + "node_modules/babel-loader": { + "version": "9.1.3", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.3.tgz", + "integrity": "sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==", + "dev": true, + "peer": true, + "dependencies": { + "find-cache-dir": "^4.0.0", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 14.15.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0", + "webpack": ">=5" + } + }, + "node_modules/babel-loader/node_modules/find-cache-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-4.0.0.tgz", + "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==", + "dev": true, + "peer": true, + "dependencies": { + "common-path-prefix": "^3.0.0", + "pkg-dir": "^7.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/babel-loader/node_modules/find-up": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", + "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", + "dev": true, + "peer": true, + "dependencies": { + "locate-path": "^7.1.0", + "path-exists": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/babel-loader/node_modules/locate-path": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", + "dev": true, + "peer": true, + "dependencies": { + "p-locate": "^6.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/babel-loader/node_modules/p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "dev": true, + "peer": true, + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/babel-loader/node_modules/p-locate": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "dev": true, + "peer": true, + "dependencies": { + "p-limit": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/babel-loader/node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "dev": true, + "peer": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/babel-loader/node_modules/pkg-dir": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", + "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", + "dev": true, + "peer": true, + "dependencies": { + "find-up": "^6.3.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/babel-loader/node_modules/yocto-queue": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "dev": true, + "peer": true, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.8", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.8.tgz", + "integrity": "sha512-OtIuQfafSzpo/LhnJaykc0R/MMnuLSSVjVYy9mHArIZ9qTCSZ6TpWCuEKZYVoN//t8HqBNScHrOtCrIK5IaGLg==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.5.0", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "peer": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.9.0.tgz", + "integrity": "sha512-7nZPG1uzK2Ymhy/NbaOWTg3uibM2BmGASS4vHS4szRZAIR8R6GwA/xAujpdrXU5iyklrimWnLWU+BLF9suPTqg==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.5.0", + "core-js-compat": "^3.34.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.5.tgz", + "integrity": "sha512-OJGYZlhLqBh2DDHeqAxWB1XIvr49CxiJ2gIt61/PU55CQK4Z58OzMqjDe1zwQdQk+rBYsRc+1rJmdajM3gimHg==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.5.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/blob-util": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/blob-util/-/blob-util-2.0.2.tgz", + "integrity": "sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ==" + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" + }, + "node_modules/bowser": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz", + "integrity": "sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==", + "dev": true, + "optional": true + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bson": { + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/bson/-/bson-4.7.2.tgz", + "integrity": "sha512-Ry9wCtIZ5kGqkJoi6aD8KjxFZEx78guTQDnpXWiNthsxzrxAK/i8E6pCHAIZTbaEFWcOCvbecMukfK7XUvyLpQ==", + "dev": true, + "dependencies": { + "buffer": "^5.6.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "engines": { + "node": "*" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "devOptional": true, + "peer": true + }, + "node_modules/cachedir": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.4.0.tgz", + "integrity": "sha512-9EtFOZR8g22CL7BWjJ9BUx1+A/djkofnyW3aOXZORNW2kxoUpx2h+uN2cOqwPmFhnpVmxg+KW2OjOSgChTEvsQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/caching-transform": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", + "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", + "dev": true, + "dependencies": { + "hasha": "^5.0.0", + "make-dir": "^3.0.0", + "package-hash": "^4.0.0", + "write-file-atomic": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001591", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001591.tgz", + "integrity": "sha512-PCzRMei/vXjJyL5mJtzNiUCKP59dm8Apqc3PH8gJkMnMXZGox93RbE76jHsmLwmIo6/3nsYIpJtx0O7u5PqFuQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/check-more-types": { + "version": "2.24.0", + "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz", + "integrity": "sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA==", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true, + "peer": true, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-table3": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz", + "integrity": "sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==", + "dependencies": { + "string-width": "^4.2.0" + }, + "engines": { + "node": "10.* || >= 12.*" + }, + "optionalDependencies": { + "@colors/colors": "1.5.0" + } + }, + "node_modules/cli-table3/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-table3/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/cli-table3/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-table3/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-truncate": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", + "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", + "dependencies": { + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-truncate/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-truncate/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/cli-truncate/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-truncate/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/cliui/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/cliui/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/cliui/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/cliui/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/common-path-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", + "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", + "dev": true, + "peer": true + }, + "node_modules/common-tags": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", + "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/connection-string": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/connection-string/-/connection-string-4.4.0.tgz", + "integrity": "sha512-D4xsUjSoE8m/B5yMOvCIHY+2ME6FIZhCq0NzBBT57Q8BuL7ArFhBK04osOfReoW4KFr5ztzFwWRdmnv9rCvu2w==", + "dev": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "node_modules/core-js-compat": { + "version": "3.36.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.36.0.tgz", + "integrity": "sha512-iV9Pd/PsgjNWBXeq8XRtWVSgz2tKAfhfvBs7qxYty+RlRd+OCksaWmOnc4JKrTc1cToXL1N0s3l/vwlxPtdElw==", + "dev": true, + "peer": true, + "dependencies": { + "browserslist": "^4.22.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + }, + "node_modules/cypress": { + "version": "13.6.6", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.6.6.tgz", + "integrity": "sha512-S+2S9S94611hXimH9a3EAYt81QM913ZVA03pUmGDfLTFa5gyp85NJ8dJGSlEAEmyRsYkioS1TtnWtbv/Fzt11A==", + "hasInstallScript": true, + "dependencies": { + "@cypress/request": "^3.0.0", + "@cypress/xvfb": "^1.2.4", + "@types/sinonjs__fake-timers": "8.1.1", + "@types/sizzle": "^2.3.2", + "arch": "^2.2.0", + "blob-util": "^2.0.2", + "bluebird": "^3.7.2", + "buffer": "^5.7.1", + "cachedir": "^2.3.0", + "chalk": "^4.1.0", + "check-more-types": "^2.24.0", + "cli-cursor": "^3.1.0", + "cli-table3": "~0.6.1", + "commander": "^6.2.1", + "common-tags": "^1.8.0", + "dayjs": "^1.10.4", + "debug": "^4.3.4", + "enquirer": "^2.3.6", + "eventemitter2": "6.4.7", + "execa": "4.1.0", + "executable": "^4.1.1", + "extract-zip": "2.0.1", + "figures": "^3.2.0", + "fs-extra": "^9.1.0", + "getos": "^3.2.1", + "is-ci": "^3.0.1", + "is-installed-globally": "~0.4.0", + "lazy-ass": "^1.6.0", + "listr2": "^3.8.3", + "lodash": "^4.17.21", + "log-symbols": "^4.0.0", + "minimist": "^1.2.8", + "ospath": "^1.2.2", + "pretty-bytes": "^5.6.0", + "process": "^0.11.10", + "proxy-from-env": "1.0.0", + "request-progress": "^3.0.0", + "semver": "^7.5.3", + "supports-color": "^8.1.1", + "tmp": "~0.2.1", + "untildify": "^4.0.0", + "yauzl": "^2.10.0" + }, + "bin": { + "cypress": "bin/cypress" + }, + "engines": { + "node": "^16.0.0 || ^18.0.0 || >=20.0.0" + } + }, + "node_modules/cypress/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/cypress/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/cypress/node_modules/chalk/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cypress/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/cypress/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/cypress/node_modules/commander": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/cypress/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/cypress/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/dayjs": { + "version": "1.11.10", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz", + "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==" + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-require-extensions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.1.tgz", + "integrity": "sha512-eXTJmRbm2TIt9MgWTsOH1wEuhew6XGZcMeGKCtLedIg/NCsg1iBePXkceTdK4Fii7pzmN9tGsZhKzZ4h7O/fxw==", + "dev": true, + "dependencies": { + "strip-bom": "^4.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "dev": true + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, + "node_modules/ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/ecc-jsbn/node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==" + }, + "node_modules/electron-to-chromium": { + "version": "1.4.688", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.688.tgz", + "integrity": "sha512-3/tHg2ChPF00eukURIB8cSVt3/9oeS1oTUIEt3ivngBInUaEcBhG2VdyEDejhwQdR6SLqaiEAEc0dHS0V52pOw==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.15.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.1.tgz", + "integrity": "sha512-3d3JRbwsCLJsYgvb6NuWEG44jjPSOMuS73L/6+7BZuoKm3W+qXnSoIYVHi8dG7Qcg4inAY4jbzkZ7MnskePeDg==", + "dev": true, + "peer": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/enquirer": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", + "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", + "dependencies": { + "ansi-colors": "^4.1.1", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/enquirer/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/enquirer/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.4.1.tgz", + "integrity": "sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==", + "dev": true, + "peer": true + }, + "node_modules/es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "dev": true + }, + "node_modules/esbuild": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.18.tgz", + "integrity": "sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q==", + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.15.18", + "@esbuild/linux-loong64": "0.15.18", + "esbuild-android-64": "0.15.18", + "esbuild-android-arm64": "0.15.18", + "esbuild-darwin-64": "0.15.18", + "esbuild-darwin-arm64": "0.15.18", + "esbuild-freebsd-64": "0.15.18", + "esbuild-freebsd-arm64": "0.15.18", + "esbuild-linux-32": "0.15.18", + "esbuild-linux-64": "0.15.18", + "esbuild-linux-arm": "0.15.18", + "esbuild-linux-arm64": "0.15.18", + "esbuild-linux-mips64le": "0.15.18", + "esbuild-linux-ppc64le": "0.15.18", + "esbuild-linux-riscv64": "0.15.18", + "esbuild-linux-s390x": "0.15.18", + "esbuild-netbsd-64": "0.15.18", + "esbuild-openbsd-64": "0.15.18", + "esbuild-sunos-64": "0.15.18", + "esbuild-windows-32": "0.15.18", + "esbuild-windows-64": "0.15.18", + "esbuild-windows-arm64": "0.15.18" + } + }, + "node_modules/esbuild-android-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.18.tgz", + "integrity": "sha512-wnpt3OXRhcjfIDSZu9bnzT4/TNTDsOUvip0foZOUBG7QbSt//w3QV4FInVJxNhKc/ErhUxc5z4QjHtMi7/TbgA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-android-arm64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.18.tgz", + "integrity": "sha512-G4xu89B8FCzav9XU8EjsXacCKSG2FT7wW9J6hOc18soEHJdtWu03L3TQDGf0geNxfLTtxENKBzMSq9LlbjS8OQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-darwin-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.18.tgz", + "integrity": "sha512-2WAvs95uPnVJPuYKP0Eqx+Dl/jaYseZEUUT1sjg97TJa4oBtbAKnPnl3b5M9l51/nbx7+QAEtuummJZW0sBEmg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-darwin-arm64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.18.tgz", + "integrity": "sha512-tKPSxcTJ5OmNb1btVikATJ8NftlyNlc8BVNtyT/UAr62JFOhwHlnoPrhYWz09akBLHI9nElFVfWSTSRsrZiDUA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-freebsd-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.18.tgz", + "integrity": "sha512-TT3uBUxkteAjR1QbsmvSsjpKjOX6UkCstr8nMr+q7zi3NuZ1oIpa8U41Y8I8dJH2fJgdC3Dj3CXO5biLQpfdZA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-freebsd-arm64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.18.tgz", + "integrity": "sha512-R/oVr+X3Tkh+S0+tL41wRMbdWtpWB8hEAMsOXDumSSa6qJR89U0S/PpLXrGF7Wk/JykfpWNokERUpCeHDl47wA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-32": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.18.tgz", + "integrity": "sha512-lphF3HiCSYtaa9p1DtXndiQEeQDKPl9eN/XNoBf2amEghugNuqXNZA/ZovthNE2aa4EN43WroO0B85xVSjYkbg==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.18.tgz", + "integrity": "sha512-hNSeP97IviD7oxLKFuii5sDPJ+QHeiFTFLoLm7NZQligur8poNOWGIgpQ7Qf8Balb69hptMZzyOBIPtY09GZYw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-arm": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.18.tgz", + "integrity": "sha512-UH779gstRblS4aoS2qpMl3wjg7U0j+ygu3GjIeTonCcN79ZvpPee12Qun3vcdxX+37O5LFxz39XeW2I9bybMVA==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-arm64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.18.tgz", + "integrity": "sha512-54qr8kg/6ilcxd+0V3h9rjT4qmjc0CccMVWrjOEM/pEcUzt8X62HfBSeZfT2ECpM7104mk4yfQXkosY8Quptug==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-mips64le": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.18.tgz", + "integrity": "sha512-Mk6Ppwzzz3YbMl/ZZL2P0q1tnYqh/trYZ1VfNP47C31yT0K8t9s7Z077QrDA/guU60tGNp2GOwCQnp+DYv7bxQ==", + "cpu": [ + "mips64el" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-ppc64le": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.18.tgz", + "integrity": "sha512-b0XkN4pL9WUulPTa/VKHx2wLCgvIAbgwABGnKMY19WhKZPT+8BxhZdqz6EgkqCLld7X5qiCY2F/bfpUUlnFZ9w==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-riscv64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.18.tgz", + "integrity": "sha512-ba2COaoF5wL6VLZWn04k+ACZjZ6NYniMSQStodFKH/Pu6RxzQqzsmjR1t9QC89VYJxBeyVPTaHuBMCejl3O/xg==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-s390x": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.18.tgz", + "integrity": "sha512-VbpGuXEl5FCs1wDVp93O8UIzl3ZrglgnSQ+Hu79g7hZu6te6/YHgVJxCM2SqfIila0J3k0csfnf8VD2W7u2kzQ==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-netbsd-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.18.tgz", + "integrity": "sha512-98ukeCdvdX7wr1vUYQzKo4kQ0N2p27H7I11maINv73fVEXt2kyh4K4m9f35U1K43Xc2QGXlzAw0K9yoU7JUjOg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-openbsd-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.18.tgz", + "integrity": "sha512-yK5NCcH31Uae076AyQAXeJzt/vxIo9+omZRKj1pauhk3ITuADzuOx5N2fdHrAKPxN+zH3w96uFKlY7yIn490xQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-sunos-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.18.tgz", + "integrity": "sha512-On22LLFlBeLNj/YF3FT+cXcyKPEI263nflYlAhz5crxtp3yRG1Ugfr7ITyxmCmjm4vbN/dGrb/B7w7U8yJR9yw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-32": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.18.tgz", + "integrity": "sha512-o+eyLu2MjVny/nt+E0uPnBxYuJHBvho8vWsC2lV61A7wwTWC3jkN2w36jtA+yv1UgYkHRihPuQsL23hsCYGcOQ==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.18.tgz", + "integrity": "sha512-qinug1iTTaIIrCorAUjR0fcBk24fjzEedFYhhispP8Oc7SFvs+XeW3YpAKiKp8dRpizl4YYAhxMjlftAMJiaUw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-arm64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.18.tgz", + "integrity": "sha512-q9bsYzegpZcLziq0zgUi5KqGVtfhjxGbnksaBFYmWLxeV/S1fK4OLdq2DFYnXcLMjlZw2L0jLsk1eGoB522WXQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "peer": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "peer": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "peer": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "peer": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eventemitter2": { + "version": "6.4.7", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.7.tgz", + "integrity": "sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg==" + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "peer": true, + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "dependencies": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/execa/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, + "node_modules/executable": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz", + "integrity": "sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==", + "dependencies": { + "pify": "^2.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "node_modules/extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "dependencies": { + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + }, + "engines": { + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" + } + }, + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", + "engines": [ + "node >=0.6.0" + ] + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "peer": true + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "peer": true + }, + "node_modules/fast-xml-parser": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.2.5.tgz", + "integrity": "sha512-B9/wizE4WngqQftFPmdaMYlXoJlJOYxGQOanC77fq9k8+Z0v5dDSVh+3glErdIROP//s/jgb7ZuxKfB8nVyo0g==", + "dev": true, + "funding": [ + { + "type": "paypal", + "url": "https://paypal.me/naturalintelligence" + }, + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "optional": true, + "dependencies": { + "strnum": "^1.0.5" + }, + "bin": { + "fxparser": "src/cli/cli.js" + } + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", + "engines": { + "node": "*" + } + }, + "node_modules/form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "dev": true, + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fromentries": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz", + "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/getos": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/getos/-/getos-3.2.1.tgz", + "integrity": "sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q==", + "dependencies": { + "async": "^3.2.0" + } + }, + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", + "dependencies": { + "assert-plus": "^1.0.0" + } + }, + "node_modules/glob": { + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true, + "peer": true + }, + "node_modules/global-dirs": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", + "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", + "dependencies": { + "ini": "2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasha": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", + "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==", + "dev": true, + "dependencies": { + "is-stream": "^2.0.0", + "type-fest": "^0.8.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/hasha/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/hasown": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz", + "integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/http-signature": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.3.6.tgz", + "integrity": "sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==", + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^2.0.2", + "sshpk": "^1.14.1" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", + "engines": { + "node": ">=8.12.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/ini": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/ip-address": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", + "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", + "dev": true, + "dependencies": { + "jsbn": "1.1.0", + "sprintf-js": "^1.1.3" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-ci": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", + "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", + "dependencies": { + "ci-info": "^3.2.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dependencies": { + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-installed-globally": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "dependencies": { + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==" + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-hook": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz", + "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==", + "dev": true, + "dependencies": { + "append-transform": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "dev": true, + "dependencies": { + "@babel/core": "^7.7.5", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/istanbul-lib-processinfo": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.3.tgz", + "integrity": "sha512-NkwHbo3E00oybX6NGJi6ar0B29vxyvNwoC7eJ4G4Yq28UfY758Hgn/heV8VRFhevPED4LXfFz0DQ8z/0kw9zMg==", + "dev": true, + "dependencies": { + "archy": "^1.0.0", + "cross-spawn": "^7.0.3", + "istanbul-lib-coverage": "^3.2.0", + "p-map": "^3.0.0", + "rimraf": "^3.0.0", + "uuid": "^8.3.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-processinfo/node_modules/p-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "dev": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-report/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/istanbul-lib-report/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jackspeak": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "dev": true, + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "peer": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/jiti": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", + "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", + "dev": true, + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsbn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", + "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", + "dev": true + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true, + "peer": true + }, + "node_modules/json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "peer": true + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsprim": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-2.0.2.tgz", + "integrity": "sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==", + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + } + }, + "node_modules/lazy-ass": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", + "integrity": "sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw==", + "engines": { + "node": "> 0.8" + } + }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/listr2": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.14.0.tgz", + "integrity": "sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g==", + "dependencies": { + "cli-truncate": "^2.1.0", + "colorette": "^2.0.16", + "log-update": "^4.0.0", + "p-map": "^4.0.0", + "rfdc": "^1.3.0", + "rxjs": "^7.5.1", + "through": "^2.3.8", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "enquirer": ">= 2.3.0 < 3" + }, + "peerDependenciesMeta": { + "enquirer": { + "optional": true + } + } + }, + "node_modules/listr2/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/listr2/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/listr2/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/listr2/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/listr2/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/listr2/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/listr2/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/listr2/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true, + "peer": true, + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true, + "peer": true + }, + "node_modules/lodash.flattendeep": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", + "integrity": "sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==", + "dev": true + }, + "node_modules/lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==" + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-symbols/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/log-symbols/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/log-symbols/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/log-symbols/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-update": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", + "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", + "dependencies": { + "ansi-escapes": "^4.3.0", + "cli-cursor": "^3.1.0", + "slice-ansi": "^4.0.0", + "wrap-ansi": "^6.2.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/log-update/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/log-update/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/log-update/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/log-update/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/log-update/node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/log-update/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-update/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-update/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lru-cache": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", + "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/magic-string": { + "version": "0.30.7", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.7.tgz", + "integrity": "sha512-8vBuFF/I/+OSLRmdf2wwFCJCz+nSn0m6DPvGH1fS/KiQoSaR+sETbov0eIk9KhEKy8CYqIkIAnbohxT/4H0kuA==", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/memory-pager": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", + "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==", + "dev": true + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/meteor-node-stubs": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/meteor-node-stubs/-/meteor-node-stubs-1.2.7.tgz", + "integrity": "sha512-20bAFUhEIOD/Cos2nmvhqf2NOKpTf63WVQ+nwuaX2OFj31sU6GL4KkNylkWum8McwsH0LsMr/F+UHhduTX7KRg==", + "bundleDependencies": [ + "assert", + "browserify-zlib", + "buffer", + "console-browserify", + "constants-browserify", + "crypto-browserify", + "domain-browser", + "events", + "https-browserify", + "os-browserify", + "path-browserify", + "process", + "punycode", + "querystring-es3", + "readable-stream", + "stream-browserify", + "stream-http", + "string_decoder", + "timers-browserify", + "tty-browserify", + "url", + "util", + "vm-browserify" + ], + "dependencies": { + "assert": "^2.0.0", + "browserify-zlib": "^0.2.0", + "buffer": "^5.7.1", + "console-browserify": "^1.2.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.12.0", + "domain-browser": "^4.22.0", + "elliptic": "^6.5.4", + "events": "^3.3.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "^1.0.0", + "process": "^0.11.10", + "punycode": "^1.4.1", + "querystring-es3": "^0.2.1", + "readable-stream": "^3.6.0", + "stream-browserify": "^3.0.0", + "stream-http": "^3.2.0", + "string_decoder": "^1.3.0", + "timers-browserify": "^2.0.12", + "tty-browserify": "0.0.1", + "url": "^0.11.0", + "util": "^0.12.4", + "vm-browserify": "^1.1.2" + } + }, + "node_modules/meteor-node-stubs/node_modules/asn1.js": { + "version": "5.4.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/meteor-node-stubs/node_modules/asn1.js/node_modules/bn.js": { + "version": "4.12.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/meteor-node-stubs/node_modules/assert": { + "version": "2.0.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "es6-object-assign": "^1.1.0", + "is-nan": "^1.2.1", + "object-is": "^1.0.1", + "util": "^0.12.0" + } + }, + "node_modules/meteor-node-stubs/node_modules/available-typed-arrays": { + "version": "1.0.4", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/meteor-node-stubs/node_modules/base64-js": { + "version": "1.5.1", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "inBundle": true, + "license": "MIT" + }, + "node_modules/meteor-node-stubs/node_modules/bn.js": { + "version": "5.2.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/meteor-node-stubs/node_modules/brorand": { + "version": "1.1.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/meteor-node-stubs/node_modules/browserify-aes": { + "version": "1.2.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/meteor-node-stubs/node_modules/browserify-cipher": { + "version": "1.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "node_modules/meteor-node-stubs/node_modules/browserify-des": { + "version": "1.0.2", + "inBundle": true, + "license": "MIT", + "dependencies": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/meteor-node-stubs/node_modules/browserify-rsa": { + "version": "4.1.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "node_modules/meteor-node-stubs/node_modules/browserify-sign": { + "version": "4.2.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + } + }, + "node_modules/meteor-node-stubs/node_modules/browserify-zlib": { + "version": "0.2.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "pako": "~1.0.5" + } + }, + "node_modules/meteor-node-stubs/node_modules/buffer": { + "version": "5.7.1", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "inBundle": true, + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/meteor-node-stubs/node_modules/buffer-xor": { + "version": "1.0.3", + "inBundle": true, + "license": "MIT" + }, + "node_modules/meteor-node-stubs/node_modules/builtin-status-codes": { + "version": "3.0.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/meteor-node-stubs/node_modules/call-bind": { + "version": "1.0.2", + "inBundle": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/meteor-node-stubs/node_modules/cipher-base": { + "version": "1.0.4", + "inBundle": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/meteor-node-stubs/node_modules/console-browserify": { + "version": "1.2.0", + "inBundle": true + }, + "node_modules/meteor-node-stubs/node_modules/constants-browserify": { + "version": "1.0.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/meteor-node-stubs/node_modules/create-ecdh": { + "version": "4.0.4", + "inBundle": true, + "license": "MIT", + "dependencies": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + } + }, + "node_modules/meteor-node-stubs/node_modules/create-ecdh/node_modules/bn.js": { + "version": "4.12.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/meteor-node-stubs/node_modules/create-hash": { + "version": "1.2.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "node_modules/meteor-node-stubs/node_modules/create-hmac": { + "version": "1.1.7", + "inBundle": true, + "license": "MIT", + "dependencies": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "node_modules/meteor-node-stubs/node_modules/crypto-browserify": { + "version": "3.12.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + }, + "engines": { + "node": "*" + } + }, + "node_modules/meteor-node-stubs/node_modules/define-properties": { + "version": "1.1.3", + "inBundle": true, + "license": "MIT", + "dependencies": { + "object-keys": "^1.0.12" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/meteor-node-stubs/node_modules/des.js": { + "version": "1.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/meteor-node-stubs/node_modules/diffie-hellman": { + "version": "5.0.3", + "inBundle": true, + "license": "MIT", + "dependencies": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "node_modules/meteor-node-stubs/node_modules/diffie-hellman/node_modules/bn.js": { + "version": "4.12.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/meteor-node-stubs/node_modules/domain-browser": { + "version": "4.22.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://bevry.me/fund" + } + }, + "node_modules/meteor-node-stubs/node_modules/elliptic": { + "version": "6.5.4", + "inBundle": true, + "license": "MIT", + "dependencies": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/meteor-node-stubs/node_modules/elliptic/node_modules/bn.js": { + "version": "4.12.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/meteor-node-stubs/node_modules/es-abstract": { + "version": "1.18.3", + "inBundle": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "is-callable": "^1.2.3", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.3", + "is-string": "^1.0.6", + "object-inspect": "^1.10.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/meteor-node-stubs/node_modules/es-to-primitive": { + "version": "1.2.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/meteor-node-stubs/node_modules/es6-object-assign": { + "version": "1.1.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/meteor-node-stubs/node_modules/events": { + "version": "3.3.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/meteor-node-stubs/node_modules/evp_bytestokey": { + "version": "1.0.3", + "inBundle": true, + "license": "MIT", + "dependencies": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/meteor-node-stubs/node_modules/foreach": { + "version": "2.0.5", + "inBundle": true, + "license": "MIT" + }, + "node_modules/meteor-node-stubs/node_modules/function-bind": { + "version": "1.1.1", + "inBundle": true, + "license": "MIT" + }, + "node_modules/meteor-node-stubs/node_modules/get-intrinsic": { + "version": "1.1.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/meteor-node-stubs/node_modules/has": { + "version": "1.0.3", + "inBundle": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/meteor-node-stubs/node_modules/has-bigints": { + "version": "1.0.1", + "inBundle": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/meteor-node-stubs/node_modules/has-symbols": { + "version": "1.0.2", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/meteor-node-stubs/node_modules/hash-base": { + "version": "3.1.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/meteor-node-stubs/node_modules/hash.js": { + "version": "1.1.7", + "inBundle": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/meteor-node-stubs/node_modules/hmac-drbg": { + "version": "1.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/meteor-node-stubs/node_modules/https-browserify": { + "version": "1.0.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/meteor-node-stubs/node_modules/ieee754": { + "version": "1.2.1", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "inBundle": true, + "license": "BSD-3-Clause" + }, + "node_modules/meteor-node-stubs/node_modules/inherits": { + "version": "2.0.4", + "inBundle": true, + "license": "ISC" + }, + "node_modules/meteor-node-stubs/node_modules/is-arguments": { + "version": "1.1.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/meteor-node-stubs/node_modules/is-bigint": { + "version": "1.0.2", + "inBundle": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/meteor-node-stubs/node_modules/is-boolean-object": { + "version": "1.1.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/meteor-node-stubs/node_modules/is-callable": { + "version": "1.2.3", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/meteor-node-stubs/node_modules/is-date-object": { + "version": "1.0.4", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/meteor-node-stubs/node_modules/is-generator-function": { + "version": "1.0.9", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/meteor-node-stubs/node_modules/is-nan": { + "version": "1.3.2", + "inBundle": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/meteor-node-stubs/node_modules/is-negative-zero": { + "version": "2.0.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/meteor-node-stubs/node_modules/is-number-object": { + "version": "1.0.5", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/meteor-node-stubs/node_modules/is-regex": { + "version": "1.1.3", + "inBundle": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/meteor-node-stubs/node_modules/is-string": { + "version": "1.0.6", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/meteor-node-stubs/node_modules/is-symbol": { + "version": "1.0.4", + "inBundle": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/meteor-node-stubs/node_modules/is-typed-array": { + "version": "1.1.5", + "inBundle": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.2", + "call-bind": "^1.0.2", + "es-abstract": "^1.18.0-next.2", + "foreach": "^2.0.5", + "has-symbols": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/meteor-node-stubs/node_modules/md5.js": { + "version": "1.3.5", + "inBundle": true, + "license": "MIT", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/meteor-node-stubs/node_modules/miller-rabin": { + "version": "4.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "bin": { + "miller-rabin": "bin/miller-rabin" + } + }, + "node_modules/meteor-node-stubs/node_modules/miller-rabin/node_modules/bn.js": { + "version": "4.12.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/meteor-node-stubs/node_modules/minimalistic-assert": { + "version": "1.0.1", + "inBundle": true, + "license": "ISC" + }, + "node_modules/meteor-node-stubs/node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "inBundle": true, + "license": "MIT" + }, + "node_modules/meteor-node-stubs/node_modules/object-inspect": { + "version": "1.10.3", + "inBundle": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/meteor-node-stubs/node_modules/object-is": { + "version": "1.1.5", + "inBundle": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/meteor-node-stubs/node_modules/object-keys": { + "version": "1.1.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/meteor-node-stubs/node_modules/object.assign": { + "version": "4.1.2", + "inBundle": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/meteor-node-stubs/node_modules/os-browserify": { + "version": "0.3.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/meteor-node-stubs/node_modules/pako": { + "version": "1.0.11", + "inBundle": true, + "license": "(MIT AND Zlib)" + }, + "node_modules/meteor-node-stubs/node_modules/parse-asn1": { + "version": "5.1.6", + "inBundle": true, + "license": "ISC", + "dependencies": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/meteor-node-stubs/node_modules/path-browserify": { + "version": "1.0.1", + "inBundle": true, + "license": "MIT" + }, + "node_modules/meteor-node-stubs/node_modules/pbkdf2": { + "version": "3.1.2", + "inBundle": true, + "license": "MIT", + "dependencies": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/meteor-node-stubs/node_modules/process": { + "version": "0.11.10", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/meteor-node-stubs/node_modules/public-encrypt": { + "version": "4.0.3", + "inBundle": true, + "license": "MIT", + "dependencies": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/meteor-node-stubs/node_modules/public-encrypt/node_modules/bn.js": { + "version": "4.12.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/meteor-node-stubs/node_modules/punycode": { + "version": "1.4.1", + "inBundle": true, + "license": "MIT" + }, + "node_modules/meteor-node-stubs/node_modules/querystring": { + "version": "0.2.0", + "inBundle": true, + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/meteor-node-stubs/node_modules/querystring-es3": { + "version": "0.2.1", + "inBundle": true, + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/meteor-node-stubs/node_modules/randombytes": { + "version": "2.1.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/meteor-node-stubs/node_modules/randomfill": { + "version": "1.0.4", + "inBundle": true, + "license": "MIT", + "dependencies": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "node_modules/meteor-node-stubs/node_modules/readable-stream": { + "version": "3.6.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/meteor-node-stubs/node_modules/ripemd160": { + "version": "2.0.2", + "inBundle": true, + "license": "MIT", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "node_modules/meteor-node-stubs/node_modules/safe-buffer": { + "version": "5.2.1", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "inBundle": true, + "license": "MIT" + }, + "node_modules/meteor-node-stubs/node_modules/safer-buffer": { + "version": "2.1.2", + "inBundle": true, + "license": "MIT" + }, + "node_modules/meteor-node-stubs/node_modules/setimmediate": { + "version": "1.0.5", + "inBundle": true, + "license": "MIT" + }, + "node_modules/meteor-node-stubs/node_modules/sha.js": { + "version": "2.4.11", + "inBundle": true, + "license": "(MIT AND BSD-3-Clause)", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, + "node_modules/meteor-node-stubs/node_modules/stream-browserify": { + "version": "3.0.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "inherits": "~2.0.4", + "readable-stream": "^3.5.0" + } + }, + "node_modules/meteor-node-stubs/node_modules/stream-http": { + "version": "3.2.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "xtend": "^4.0.2" + } + }, + "node_modules/meteor-node-stubs/node_modules/string_decoder": { + "version": "1.3.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/meteor-node-stubs/node_modules/string.prototype.trimend": { + "version": "1.0.4", + "inBundle": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/meteor-node-stubs/node_modules/string.prototype.trimstart": { + "version": "1.0.4", + "inBundle": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/meteor-node-stubs/node_modules/timers-browserify": { + "version": "2.0.12", + "inBundle": true, + "license": "MIT", + "dependencies": { + "setimmediate": "^1.0.4" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/meteor-node-stubs/node_modules/tty-browserify": { + "version": "0.0.1", + "inBundle": true, + "license": "MIT" + }, + "node_modules/meteor-node-stubs/node_modules/unbox-primitive": { + "version": "1.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/meteor-node-stubs/node_modules/url": { + "version": "0.11.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "punycode": "1.3.2", + "querystring": "0.2.0" + } + }, + "node_modules/meteor-node-stubs/node_modules/url/node_modules/punycode": { + "version": "1.3.2", + "inBundle": true, + "license": "MIT" + }, + "node_modules/meteor-node-stubs/node_modules/util": { + "version": "0.12.4", + "inBundle": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "safe-buffer": "^5.1.2", + "which-typed-array": "^1.1.2" + } + }, + "node_modules/meteor-node-stubs/node_modules/util-deprecate": { + "version": "1.0.2", + "inBundle": true, + "license": "MIT" + }, + "node_modules/meteor-node-stubs/node_modules/vm-browserify": { + "version": "1.1.2", + "inBundle": true, + "license": "MIT" + }, + "node_modules/meteor-node-stubs/node_modules/which-boxed-primitive": { + "version": "1.0.2", + "inBundle": true, + "license": "MIT", + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/meteor-node-stubs/node_modules/which-typed-array": { + "version": "1.1.4", + "inBundle": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.2", + "call-bind": "^1.0.0", + "es-abstract": "^1.18.0-next.1", + "foreach": "^2.0.5", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.1", + "is-typed-array": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/meteor-node-stubs/node_modules/xtend": { + "version": "4.0.2", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/meteor-vite": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/meteor-vite/-/meteor-vite-1.10.1.tgz", + "integrity": "sha512-PnLzDk94gR/RQvP5L1OgB2eBMfVRzATlakhPgy3bxuvI06XlQwr7qoxOQG/4o15VbuODAfmqb0xSbcDl35pJDA==", + "dependencies": { + "@babel/parser": "^7.22.5", + "@babel/traverse": "^7.22.5", + "p-limit": "^3.1.0", + "picocolors": "^1.0.0" + }, + "peerDependencies": { + "vite": ">=3.0.0 < 5.0.0" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/mongo-seeding": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mongo-seeding/-/mongo-seeding-4.0.0.tgz", + "integrity": "sha512-+zT0BZWztzp6Ud2gmut4Q9EmGmRWWOEW02+h9cQhK58HBEyj7OFsAKcJwqulQPjZAxCuFFjepDf339KLrE/WUw==", + "dev": true, + "dependencies": { + "bson": "^6.1.0", + "connection-string": "^4.4.0", + "debug": "^4.3.1", + "extend": "^3.0.0", + "import-fresh": "^3.3.0", + "mongodb": "^6.1.0" + } + }, + "node_modules/mongo-seeding/node_modules/@types/whatwg-url": { + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-11.0.4.tgz", + "integrity": "sha512-lXCmTWSHJvf0TRSO58nm978b8HJ/EdsSsEKLd3ODHFjo+3VGAyyTp4v50nWvwtzBxSMQrVOK7tcuN0zGPLICMw==", + "dev": true, + "dependencies": { + "@types/webidl-conversions": "*" + } + }, + "node_modules/mongo-seeding/node_modules/bson": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/bson/-/bson-6.4.0.tgz", + "integrity": "sha512-6/gSSEdbkuFlSb+ufj5jUSU4+wo8xQOwm2bDSqwmxiPE17JTpsP63eAwoN8iF8Oy4gJYj+PAL3zdRCTdaw5Y1g==", + "dev": true, + "engines": { + "node": ">=16.20.1" + } + }, + "node_modules/mongo-seeding/node_modules/mongodb": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-6.4.0.tgz", + "integrity": "sha512-MdFHsyb1a/Ee0H3NmzWTSLqchacDV/APF0H6BNQvraWrOiIocys2EmTFZPgHxWhcfO94c1F34I9MACU7x0hHKA==", + "dev": true, + "dependencies": { + "@mongodb-js/saslprep": "^1.1.0", + "bson": "^6.4.0", + "mongodb-connection-string-url": "^3.0.0" + }, + "engines": { + "node": ">=16.20.1" + }, + "peerDependencies": { + "@aws-sdk/credential-providers": "^3.188.0", + "@mongodb-js/zstd": "^1.1.0", + "gcp-metadata": "^5.2.0", + "kerberos": "^2.0.1", + "mongodb-client-encryption": ">=6.0.0 <7", + "snappy": "^7.2.2", + "socks": "^2.7.1" + }, + "peerDependenciesMeta": { + "@aws-sdk/credential-providers": { + "optional": true + }, + "@mongodb-js/zstd": { + "optional": true + }, + "gcp-metadata": { + "optional": true + }, + "kerberos": { + "optional": true + }, + "mongodb-client-encryption": { + "optional": true + }, + "snappy": { + "optional": true + }, + "socks": { + "optional": true + } + } + }, + "node_modules/mongo-seeding/node_modules/mongodb-connection-string-url": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-3.0.0.tgz", + "integrity": "sha512-t1Vf+m1I5hC2M5RJx/7AtxgABy1cZmIPQRMXw+gEIPn/cZNF3Oiy+l0UIypUwVB5trcWHq3crg2g3uAR9aAwsQ==", + "dev": true, + "dependencies": { + "@types/whatwg-url": "^11.0.2", + "whatwg-url": "^13.0.0" + } + }, + "node_modules/mongo-seeding/node_modules/tr46": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-4.1.1.tgz", + "integrity": "sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==", + "dev": true, + "dependencies": { + "punycode": "^2.3.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/mongo-seeding/node_modules/whatwg-url": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-13.0.0.tgz", + "integrity": "sha512-9WWbymnqj57+XEuqADHrCJ2eSXzn8WXIW/YSGaZtb2WKAInQ6CHfaUUcTyyver0p8BDg5StLQq8h1vtZuwmOig==", + "dev": true, + "dependencies": { + "tr46": "^4.1.1", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/mongodb": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.17.2.tgz", + "integrity": "sha512-mLV7SEiov2LHleRJPMPrK2PMyhXFZt2UQLC4VD4pnth3jMjYKHhtqfwwkkvS/NXuo/Fp3vbhaNcXrIDaLRb9Tg==", + "dev": true, + "dependencies": { + "bson": "^4.7.2", + "mongodb-connection-string-url": "^2.6.0", + "socks": "^2.7.1" + }, + "engines": { + "node": ">=12.9.0" + }, + "optionalDependencies": { + "@aws-sdk/credential-providers": "^3.186.0", + "@mongodb-js/saslprep": "^1.1.0" + } + }, + "node_modules/mongodb-connection-string-url": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.6.0.tgz", + "integrity": "sha512-WvTZlI9ab0QYtTYnuMLgobULWhokRjtC7db9LtcVfJ+Hsnyr5eo6ZtNAt3Ly24XZScGMelOcGtm7lSn0332tPQ==", + "dev": true, + "dependencies": { + "@types/whatwg-url": "^8.2.1", + "whatwg-url": "^11.0.0" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true, + "peer": true + }, + "node_modules/node-preload": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz", + "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==", + "dev": true, + "dependencies": { + "process-on-spawn": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz", + "integrity": "sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==", + "dev": true, + "dependencies": { + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "caching-transform": "^4.0.0", + "convert-source-map": "^1.7.0", + "decamelize": "^1.2.0", + "find-cache-dir": "^3.2.0", + "find-up": "^4.1.0", + "foreground-child": "^2.0.0", + "get-package-type": "^0.1.0", + "glob": "^7.1.6", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-hook": "^3.0.0", + "istanbul-lib-instrument": "^4.0.0", + "istanbul-lib-processinfo": "^2.0.2", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.0.2", + "make-dir": "^3.0.0", + "node-preload": "^0.2.1", + "p-map": "^3.0.0", + "process-on-spawn": "^1.0.0", + "resolve-from": "^5.0.0", + "rimraf": "^3.0.0", + "signal-exit": "^3.0.2", + "spawn-wrap": "^2.0.0", + "test-exclude": "^6.0.0", + "yargs": "^15.0.2" + }, + "bin": { + "nyc": "bin/nyc.js" + }, + "engines": { + "node": ">=8.9" + } + }, + "node_modules/nyc/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/nyc/node_modules/foreground-child": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", + "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/nyc/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/nyc/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/nyc/node_modules/p-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "dev": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ospath": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/ospath/-/ospath-1.2.2.tgz", + "integrity": "sha512-o6E5qJV5zkAbIDNhGSIlyOhScKXgQrSRMilfph0clDfM0nEnBOlKlH4sWDmG95BW/CvwNz0vmm7dJVtU2KlMiA==" + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-locate/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/package-hash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz", + "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.15", + "hasha": "^5.0.0", + "lodash.flattendeep": "^4.4.0", + "release-zalgo": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "node_modules/path-scurry": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", + "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "dev": true, + "dependencies": { + "lru-cache": "^9.1.1 || ^10.0.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==" + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/postcss": { + "version": "8.4.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz", + "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "dev": true, + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-load-config/node_modules/lilconfig": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.1.tgz", + "integrity": "sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/postcss-nested": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", + "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.11" + }, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.15", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz", + "integrity": "sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "node_modules/pretty-bytes": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/process-on-spawn": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz", + "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==", + "dev": true, + "dependencies": { + "fromentries": "^1.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/proxy-from-env": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz", + "integrity": "sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A==" + }, + "node_modules/psl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==" + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/qs": { + "version": "6.10.4", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.4.tgz", + "integrity": "sha512-OQiU+C+Ds5qiH91qh/mg0w+8nwQuLjM4F4M/PbmhDOoYehPh+Fb0bDjtR1sOvy7YKxvj28Y/M0PhP5uVX0kB+g==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "peer": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true, + "peer": true + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", + "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", + "dev": true, + "peer": true, + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" + }, + "node_modules/regenerator-transform": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dev": true, + "peer": true, + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true, + "peer": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/release-zalgo": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", + "integrity": "sha512-gUAyHVHPPC5wdqX/LG4LWtRYtgjxyX78oanFNTMMyFEfOqdC54s3eE82imuWKbOeqYht2CrNf64Qb8vgmmtZGA==", + "dev": true, + "dependencies": { + "es6-error": "^4.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/request-progress": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-3.0.0.tgz", + "integrity": "sha512-MnWzEHHaxHO2iWiQuHrUPBi/1WeBf5PkxQqNyNvLl9VAYSdXkP8tQ3pBSeCPD+yw0v0Aq1zosWLz0BdeXpWwZg==", + "dependencies": { + "throttleit": "^1.0.0" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/restore-cursor/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rfdc": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.1.tgz", + "integrity": "sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==" + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/rimraf/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/rollup": { + "version": "2.79.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", + "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/schema-utils": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "dev": true, + "peer": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "dev": true, + "peer": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "dev": true + }, + "node_modules/set-function-length": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.1.tgz", + "integrity": "sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==", + "dependencies": { + "define-data-property": "^1.1.2", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", + "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/slice-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "dev": true, + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.1.tgz", + "integrity": "sha512-B6w7tkwNid7ToxjZ08rQMT8M9BJAf8DKx8Ft4NivzH0zBUfd6jldGcisJn/RLgxcX3FPNDdNQCUEMMT79b+oCQ==", + "dev": true, + "dependencies": { + "ip-address": "^9.0.5", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "devOptional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "devOptional": true, + "peer": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/sparse-bitfield": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", + "integrity": "sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==", + "dev": true, + "dependencies": { + "memory-pager": "^1.0.2" + } + }, + "node_modules/spawn-wrap": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", + "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==", + "dev": true, + "dependencies": { + "foreground-child": "^2.0.0", + "is-windows": "^1.0.2", + "make-dir": "^3.0.0", + "rimraf": "^3.0.0", + "signal-exit": "^3.0.2", + "which": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/spawn-wrap/node_modules/foreground-child": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", + "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/spawn-wrap/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "dev": true + }, + "node_modules/sshpk": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz", + "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==", + "dependencies": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sshpk/node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==" + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "node_modules/string-width-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/string-width-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + } + }, + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/strnum": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", + "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==", + "dev": true, + "optional": true + }, + "node_modules/sucrase": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "^10.3.10", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tailwindcss": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.1.tgz", + "integrity": "sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==", + "dev": true, + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.5.3", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.0", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.19.1", + "lilconfig": "^2.1.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.23", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.1", + "postcss-nested": "^6.0.1", + "postcss-selector-parser": "^6.0.11", + "resolve": "^1.22.2", + "sucrase": "^3.32.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/terser": { + "version": "5.28.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.28.1.tgz", + "integrity": "sha512-wM+bZp54v/E9eRRGXb5ZFDvinrJIOaTapx3WUokyVGZu5ucVCK55zEgGd5Dl2fSr3jUo5sDiERErUWLY6QPFyA==", + "devOptional": true, + "peer": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.10", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", + "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", + "dev": true, + "peer": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.20", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.1", + "terser": "^5.26.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser-webpack-plugin/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "peer": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/terser-webpack-plugin/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peer": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/terser-webpack-plugin/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "peer": true + }, + "node_modules/terser-webpack-plugin/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "peer": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "devOptional": true, + "peer": true + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/test-exclude/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/test-exclude/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/test-exclude/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/throttleit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.1.tgz", + "integrity": "sha512-vDZpf9Chs9mAdfY046mcPt8fg5QSZr37hEH4TXYBnDF+izxgrbRGUAAaBvIk/fJm9aOFCGFd1EsNg5AZCbnQCQ==", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" + }, + "node_modules/tmp": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", + "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", + "engines": { + "node": ">=14.14" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tough-cookie": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", + "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tough-cookie/node_modules/universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/tr46": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", + "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", + "dev": true, + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "dev": true + }, + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "devOptional": true + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "dev": true, + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "peer": true, + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "dev": true, + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "dev": true, + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/untildify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "peer": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "node_modules/vite": { + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/vite/-/vite-3.2.8.tgz", + "integrity": "sha512-EtQU16PLIJpAZol2cTLttNP1mX6L0SyI0pgQB1VOoWeQnMSvtiwovV3D6NcjN8CZQWWyESD2v5NGnpz5RvgOZA==", + "dependencies": { + "esbuild": "^0.15.9", + "postcss": "^8.4.18", + "resolve": "^1.22.1", + "rollup": "^2.79.1" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "@types/node": ">= 14", + "less": "*", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite-plugin-istanbul": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/vite-plugin-istanbul/-/vite-plugin-istanbul-5.0.0.tgz", + "integrity": "sha512-Tg9zDmm/u4SdEDFbEWHBz7mmFe7jhLRmArA2XCmw5yydEFCARU9r4TxqFFnBFWCL63D9A7XA7VELulOO5T5o/g==", + "dev": true, + "dependencies": { + "@istanbuljs/load-nyc-config": "^1.1.0", + "espree": "^9.6.1", + "istanbul-lib-instrument": "^5.1.0", + "picocolors": "^1.0.0", + "test-exclude": "^6.0.0" + }, + "peerDependencies": { + "vite": ">=2.9.1 <= 5" + } + }, + "node_modules/vite-plugin-istanbul/node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/vite-plugin-istanbul/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/vue": { + "version": "3.4.21", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.21.tgz", + "integrity": "sha512-5hjyV/jLEIKD/jYl4cavMcnzKwjMKohureP8ejn3hhEjwhWIhWeuzL2kJAjzl/WyVsgPY56Sy4Z40C3lVshxXA==", + "dependencies": { + "@vue/compiler-dom": "3.4.21", + "@vue/compiler-sfc": "3.4.21", + "@vue/runtime-dom": "3.4.21", + "@vue/server-renderer": "3.4.21", + "@vue/shared": "3.4.21" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/vue-meteor-tracker": { + "version": "3.0.0-beta.7", + "resolved": "https://registry.npmjs.org/vue-meteor-tracker/-/vue-meteor-tracker-3.0.0-beta.7.tgz", + "integrity": "sha512-5sOdpl+VBy4BxWtEAoV5KJb218ZnX3/ml5Du8LUbI/BMZdu8LTjGVsIigzykxxRumbM/jZ72mqDHHwyLNvhQkA==", + "engines": { + "node": ">14.5.0" + }, + "peerDependencies": { + "vue": "^2.7.0 || ^3.0.0" + } + }, + "node_modules/vue-router": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.3.0.tgz", + "integrity": "sha512-dqUcs8tUeG+ssgWhcPbjHvazML16Oga5w34uCUmsk7i0BcnskoLGwjpa15fqMr2Fa5JgVBrdL2MEgqz6XZ/6IQ==", + "dependencies": { + "@vue/devtools-api": "^6.5.1" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "vue": "^3.2.0" + } + }, + "node_modules/watchpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "dev": true, + "peer": true, + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/webpack": { + "version": "5.90.3", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.90.3.tgz", + "integrity": "sha512-h6uDYlWCctQRuXBs1oYpVe6sFcWedl0dpcVaTf/YF67J9bKvwJajFulMVSYKHrksMB3I/pIagRzDxwxkebuzKA==", + "dev": true, + "peer": true, + "dependencies": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^1.0.5", + "@webassemblyjs/ast": "^1.11.5", + "@webassemblyjs/wasm-edit": "^1.11.5", + "@webassemblyjs/wasm-parser": "^1.11.5", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.9.0", + "browserslist": "^4.21.10", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.15.0", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.2.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.10", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true, + "peer": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "peer": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/webpack/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peer": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/webpack/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "peer": true + }, + "node_modules/webpack/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "peer": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/whatwg-url": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", + "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", + "dev": true, + "dependencies": { + "tr46": "^3.0.0", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-module": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", + "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", + "dev": true + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/write-file-atomic/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/yaml": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.0.tgz", + "integrity": "sha512-j9iR8g+/t0lArF4V6NE/QCfT+CO7iLqrXAHZbJdo+LfjqP1vR8Fg5bSiaq6Q2lOD1AUEVrEVIgABvBFYojJVYQ==", + "dev": true, + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..c57203c --- /dev/null +++ b/package.json @@ -0,0 +1,65 @@ +{ + "name": "cypressActions", + "private": true, + "scripts": { + "cy-gui": "COVERAGE=1 BABEL_ENV=test cypress open", + "test": "COVERAGE=1 COVERAGE_OUT_LCOVONLY=1 COVERAGE_APP_FOLDER=$PWD/ BABEL_ENV=test cypress run", + "start": "MONGO_URL='' BABEL_ENV=test DISABLE_REACT_FAST_REFRESH=1 meteor run --exclude-archs 'web.browser.legacy, web.cordova'", + "test:dev:headless": "WAIT_ON_TIMEOUT=1800000 start-server-and-test http://127.0.0.1:3000", + "build": "meteor build ../output/vue --directory", + "test-app": "TEST_WATCH=1 meteor test --full-app --driver-package meteortesting:mocha", + "visualize": "meteor --production --extra-packages bundle-visualizer" + }, + "nyc": { + "all": false, + "reporter": [ + "lcovonly" + ], + "report-dir": ".tests/.cypress-coverage", + "instrument": true, + "sourceMap": true, + "include": [ + "**/*.{js,vue}" + ], + "exclude": [ + "**/node_modules/**", + "**/tests/**", + ".coverage/**", + "packages/**", + ".vite-inspect/**", + "*.js" + ], + "extension": [ + ".js", + ".vue" + ] + }, + "dependencies": { + "@babel/runtime": "^7.23.5", + "cypress": "^13.6.6", + "meteor-node-stubs": "^1.2.7", + "meteor-vite": "^1.10.1", + "vue": "^3.3.9", + "vue-meteor-tracker": "^3.0.0-beta.7", + "vue-router": "^4.2.5" + }, + "meteor": { + "mainModule": { + "client": "client/main.js", + "server": "server/main.js" + }, + "testModule": "tests/main.js" + }, + "devDependencies": { + "@cypress/code-coverage": "^3.12.26", + "@types/meteor": "^2.9.7", + "@vitejs/plugin-vue": "^3.2.0", + "autoprefixer": "^10.4.16", + "mongo-seeding": "^4.0.0", + "nyc": "^15.1.0", + "postcss": "^8.4.31", + "tailwindcss": "^3.3.5", + "vite": "^3.2.7", + "vite-plugin-istanbul": "^5.0.0" + } +} diff --git a/postcss.config.js b/postcss.config.js new file mode 100644 index 0000000..33ad091 --- /dev/null +++ b/postcss.config.js @@ -0,0 +1,6 @@ +module.exports = { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +} diff --git a/server/main.js b/server/main.js new file mode 100644 index 0000000..e5ef48e --- /dev/null +++ b/server/main.js @@ -0,0 +1,31 @@ +import { Meteor } from 'meteor/meteor' +import { LinksCollection } from '/imports/api/links' + +async function insertLink({ title, url }) { + await LinksCollection.insertAsync({ title, url, createdAt: new Date() }) +} + +Meteor.startup(async () => { + // If the Links collection is empty, add some data. + if ((await LinksCollection.find().countAsync()) === 0) { + await insertLink({ + title: 'Do the Tutorial', + url: 'https://vuejs.org/guide/quick-start.html', + }) + + await insertLink({ + title: 'Follow the Guide', + url: 'https://guide.meteor.com', + }) + + await insertLink({ + title: 'Read the Docs', + url: 'https://docs.meteor.com', + }) + + await insertLink({ + title: 'Discussions', + url: 'https://forums.meteor.com', + }) + } +}) diff --git a/tailwind.config.js b/tailwind.config.js new file mode 100644 index 0000000..72c950f --- /dev/null +++ b/tailwind.config.js @@ -0,0 +1,8 @@ +/** @type {import('tailwindcss').Config} */ +module.exports = { + content: ['./imports/ui/**/*.{vue,js,ts,jsx,tsx}', './client/*.html'], + theme: { + extend: {}, + }, + plugins: [], +} diff --git a/tests/ActivityAnimalCard.tests.js b/tests/ActivityAnimalCard.tests.js new file mode 100644 index 0000000..e69de29 diff --git a/tests/Vue/vuex.js b/tests/Vue/vuex.js new file mode 100644 index 0000000..a2cfba7 --- /dev/null +++ b/tests/Vue/vuex.js @@ -0,0 +1,900 @@ +import assert from 'assert'; +import { expect } from 'chai'; +import Pets from '../../imports/api/collections/Pets'; +import { Meteor } from 'meteor/meteor'; +import { Random } from 'meteor/random'; +import log from 'loglevel'; + +if (Meteor.isClient) { + log.info('IMPORT TESTS2'); + import store from '../../imports/plugins/store'; + import { createLocalVue, mount } from '@vue/test-utils'; + //import { BootstrapVue } from 'bootstrap-vue'; + import VueRouter from 'vue-router'; + import Vuex from 'vuex'; + import VueI18n from 'vue-i18n'; + + //import Vuelidate from 'vuelidate'; + + import VPets from '../../imports/ui/views/PetsTop.vue'; + + const VlocalVue = createLocalVue(); + // log.info("IMPORT TESTS3"); + // VlocalVue.use(Vuelidate); + VlocalVue.use(VueI18n); + // log.info("IMPORT TESTS4"); + //VlocalVue.use(BootstrapVue); + // log.info("IMPORT TESTS1"); + + const i18n = new VueI18n(); + VlocalVue.use(VueRouter); + VlocalVue.use(Vuex); + + VlocalVue.component('VPets', VPets); + + describe('Composant Vuex: ', function () { + it('setIsGalleryOpen', async function () { + store.commit('setIsGalleryOpen', true); + expect(store.state.isGalleryOpen).to.equal(true); + store.commit('setIsGalleryOpen', false); + expect(store.state.isGalleryOpen).to.equal(false); + }); + + it('setvActivityFilterOnMap', async function () { + store.commit('setvActivityFilterOnMap', true); + expect(store.state.settings.mapFilter.activityFilterOnMap).to.equal(true); + store.commit('setvActivityFilterOnMap', false); + expect(store.state.settings.mapFilter.activityFilterOnMap).to.equal( + false + ); + }); + + it('setActivityType', async function () { + store.commit('setActivityType', [ + 'Balade', + 'Cani-cross', + 'Cani-VTT', + 'Course à pied', + 'Equitation - Dressage', + 'Equitation - Balade', + 'Vélo', + 'Randonnée' + ]); + expect(store.state.activityType.length).to.equal(8); + expect(store.state.activityType[0]).to.equal('Balade'); + expect(store.state.activityType[6]).to.equal('Vélo'); + }); + + it('setApplicationState', async function () { + store.commit('setApplicationState', 'map'); + expect(store.state.applicationState['map']).to.equal(true); + expect(store.state.applicationState['traces']).to.equal(false); + store.commit('setApplicationState', 'traces'); + expect(store.state.applicationState['map']).to.equal(false); + expect(store.state.applicationState['stats']).to.equal(false); + expect(store.state.applicationState['traces']).to.equal(true); + }); + + it('setMapVisible', async function () { + store.commit('setMapVisible', true); + expect(store.state.settings.activitiesListFilter.isMapVisible).to.equal( + true + ); + store.commit('setMapVisible', false); + expect(store.state.settings.activitiesListFilter.isMapVisible).to.equal( + false + ); + }); + + it('setPhotosVisible', async function () { + store.commit('setPhotosVisible', true); + expect( + store.state.settings.activitiesListFilter.isPhotosVisible + ).to.equal(true); + store.commit('setPhotosVisible', false); + expect( + store.state.settings.activitiesListFilter.isPhotosVisible + ).to.equal(false); + }); + + it('setDetailsVisible', async function () { + store.commit('setDetailsVisible', true); + expect( + store.state.settings.activitiesListFilter.isDetailsVisible + ).to.equal(true); + store.commit('setDetailsVisible', false); + expect( + store.state.settings.activitiesListFilter.isDetailsVisible + ).to.equal(false); + }); + + it('setDistanceMax', async function () { + store.commit('setDistanceMax', 100); + expect(store.state.settings.activitiesListFilter.distanceMax).to.equal( + 100 + ); + store.commit('setDistanceMax', 50); + expect(store.state.settings.activitiesListFilter.distanceMax).to.equal( + 50 + ); + }); + + it('setDistanceMin', async function () { + store.commit('setDistanceMin', 100); + expect(store.state.settings.activitiesListFilter.distanceMin).to.equal( + 100 + ); + store.commit('setDistanceMin', 50); + expect(store.state.settings.activitiesListFilter.distanceMin).to.equal( + 50 + ); + }); + + it('setBackButton', async function () { + store.commit('setBackButton'); + expect(store.state.backButton).to.equal(true); + }); + + it('unsetBackButton', async function () { + store.commit('unsetBackButton'); + expect(store.state.backButton).to.equal(false); + }); + + it('DisableBottomBar', async function () { + store.commit('DisableBottomBar'); + expect(store.state.StateBottomBar).to.equal(false); + }); + + it('EnableBottomBar', async function () { + store.commit('EnableBottomBar'); + expect(store.state.StateBottomBar).to.equal(true); + }); + + it('EnableTopLeftButton', async function () { + store.commit('EnableTopLeftButton'); + expect(store.state.StateTopLeftButton).to.equal(true); + }); + + it('DisableTopLeftButton', async function () { + store.commit('DisableTopLeftButton'); + expect(store.state.StateTopLeftButton).to.equal(false); + }); + + it('pushTopFeltButtomFrom', async function () { + store.commit('pushTopFeltButtomFrom', { + from: 'AnimalDetailCard', + displaydetailcard: true, + animalid: '12a22' + }); + expect(store.state.TopFeltButtomFrom[0].from).to.equal( + 'AnimalDetailCard' + ); + expect(store.state.TopFeltButtomFrom[0].displaydetailcard).to.equal(true); + expect(store.state.TopFeltButtomFrom[0].animalid).to.equal('12a22'); + + store.commit('pushTopFeltButtomFrom', { + from: 'AnimalCard', + displaydetailcard: false, + animalid: '122' + }); + expect(store.state.TopFeltButtomFrom.length).to.equal(2); + expect(store.state.TopFeltButtomFrom[1].displaydetailcard).to.equal( + false + ); + }); + + it('popTopFeltButtomFrom', async function () { + store.commit('popTopFeltButtomFrom'); + expect(store.state.TopFeltButtomFrom.length).to.equal(1); + expect(store.state.TopFeltButtomFrom[0].from).to.equal( + 'AnimalDetailCard' + ); + expect(store.state.TopFeltButtomFrom[0].displaydetailcard).to.equal(true); + expect(store.state.TopFeltButtomFrom[0].animalid).to.equal('12a22'); + }); + + it('SetPreviousRoute', async function () { + store.commit('SetPreviousRoute', '/route'); + expect(store.state.PreviousRoute).to.equal('/route'); + }); + + it('SetBack2Route', async function () { + store.commit('SetBack2Route', '/route'); + expect(store.state.Back2Route).to.equal('/route'); + }); + + it('SetTopRightButtonLabel', async function () { + store.commit('SetTopRightButtonLabel', 'Modify'); + expect(store.state.TopRightButtonLabel).to.equal('Modify'); + }); + + it('SetTopRightButtonState', async function () { + store.commit('SetTopRightButtonState', true); + expect(store.state.TopRightButtonState).to.equal(true); + store.commit('SetTopRightButtonState', false); + expect(store.state.TopRightButtonState).to.equal(false); + }); + + it('SetFileUpLoad', async function () { + store.commit('SetFileUpLoad', 'file.png'); + expect(store.state.FileUpLoad).to.equal('file.png'); + }); + + it('SetMarkersTmp', async function () { + store.commit('SetMarkersTmp', [{ essai: 'eeee' }, { toto: 'zzzz' }]); + expect(store.state.MarkersTmp[0].essai).to.equal('eeee'); + expect(store.state.MarkersTmp[1].toto).to.equal('zzzz'); + }); + + it('enableTraceRecorded', async function () { + store.commit('enableTraceRecorded'); + expect(store.state.isTraceRecorded).to.equal(true); + }); + + it('disableTraceRecorded', async function () { + store.commit('disableTraceRecorded'); + expect(store.state.isTraceRecorded).to.equal(false); + }); + + it('setPauseTraceRecorded', async function () { + store.commit('setPauseTraceRecorded'); + expect(store.state.isPauseTraceRecorded).to.equal(true); + }); + + it('unsetPauseTraceRecorded', async function () { + store.commit('unsetPauseTraceRecorded'); + expect(store.state.isPauseTraceRecorded).to.equal(false); + }); + + it('updateTimerRecord', async function () { + expect(store.state.timerRecord).to.equal(0); + store.commit('updateTimerRecord'); + expect(store.state.timerRecord).to.equal(1); + }); + + // Cache Activité Humaine + it('incrActivitiesPageNumber', async function () { + expect(store.state.activities.pageNumber).to.equal(0); + store.commit('incrActivitiesPageNumber'); + expect(store.state.activities.pageNumber).to.equal(1); + }); + + it('updateActivitiesCurrentCount', async function () { + store.commit('updateActivitiesCurrentCount'); + expect(store.state.activities.activitiesCurrentCount).to.equal(5); + }); + + it('setActivitiesTotalCount', async function () { + store.commit('setActivitiesTotalCount', 35); + expect(store.state.activities.activitiesTotalCount).to.equal(35); + }); + + it('setActivitiesList', async function () { + store.commit('setActivitiesList', [ + { Name: 'name', description: 'description' } + ]); + expect(store.state.activities.activitiesList[0].Name).to.equal('name'); + expect(store.state.activities.activitiesList[0].description).to.equal( + 'description' + ); + }); + + it('updateCacheHumanActivity', async function () { + store.commit('updateCacheHumanActivity', { + activity: { + name: 'name1', + description: 'description1', + type: 'Course', + time: '01:00:00', + distance: 25 + }, + index: 0 + }); + expect(store.state.activities.activitiesList[0].Name).to.equal('name1'); + expect(store.state.activities.activitiesList[0].description).to.equal( + 'description1' + ); + expect(store.state.activities.activitiesList[0].Type).to.equal('Course'); + expect(store.state.activities.activitiesList[0].TimeFCtotal).to.equal( + '3600' + ); + expect(store.state.activities.activitiesList[0].Distance).to.equal(25); + }); + + it('resetOptionsCacheActivities', async function () { + store.commit('resetOptionsCacheActivities'); + expect(store.state.activities.pageNumber).to.equal(0); + expect(store.state.activities.pageSize).to.equal(5); + expect(store.state.activities.activitiesCurrentCount).to.equal(-1); + expect(store.state.activities.activitiesTotalCount).to.equal(0); + }); + + // Cache Activité Animal + it('incrActivitiesAnimalsPageNumber', async function () { + expect(store.state.activitiesAnimals.pageNumber).to.equal(0); + store.commit('incrActivitiesAnimalsPageNumber'); + expect(store.state.activitiesAnimals.pageNumber).to.equal(1); + }); + + it('updateActivitiesAnimalsCurrentCount', async function () { + store.commit('updateActivitiesAnimalsCurrentCount'); + expect(store.state.activitiesAnimals.activitiesCurrentCount).to.equal(10); + }); + + it('setActivitiesAnimalsTotalCount', async function () { + store.commit('setActivitiesAnimalsTotalCount', 35); + expect(store.state.activitiesAnimals.activitiesTotalCount).to.equal(35); + }); + + it('setActivitiesAnimalsList', async function () { + store.commit('setActivitiesAnimalsList', [ + { Name: 'name', description: 'description' } + ]); + expect(store.state.activitiesAnimals.activitiesList[0].Name).to.equal( + 'name' + ); + expect( + store.state.activitiesAnimals.activitiesList[0].description + ).to.equal('description'); + }); + + it('updateCacheAnimalActivity', async function () { + store.commit('updateCacheAnimalActivity', { + activity: { + name: 'name1', + description: 'description1', + type: 'Course', + IDAnimal: 'IDAnimal' + }, + index: 0 + }); + expect( + store.state.activitiesAnimals.activitiesList[0].ActivityName + ).to.equal('name1'); + expect( + store.state.activitiesAnimals.activitiesList[0].description + ).to.equal('description1'); + expect( + store.state.activitiesAnimals.activitiesList[0].ActivityType + ).to.equal('Course'); + expect(store.state.activitiesAnimals.activitiesList[0].IDAnimal).to.equal( + 'IDAnimal' + ); + }); + + it('resetOptionsCacheActivitiesAnimals', async function () { + store.commit('resetOptionsCacheActivitiesAnimals'); + expect(store.state.activitiesAnimals.pageNumber).to.equal(0); + expect(store.state.activitiesAnimals.pageSize).to.equal(5); + expect(store.state.activitiesAnimals.activitiesCurrentCount).to.equal(-1); + expect(store.state.activitiesAnimals.activitiesTotalCount).to.equal(0); + }); + + it('setMobileVersion', async function () { + store.commit('setMobileVersion', '3.4.6'); + expect(store.state.mobileVersion).to.equal('3.4.6'); + }); + it('setMapState', async function () { + store.commit('setMapState', { + firstTime: false, + zoom: 4, + center: [4, 6] + }); + expect(store.state.mapState.firstTime).to.equal(false); + expect(store.state.mapState.zoom).to.equal(4); + expect(store.state.mapState.center[0]).to.equal(4); + expect(store.state.mapState.center[1]).to.equal(6); + }); + + it('setJustExitPause', async function () { + store.commit('setJustExitPause', true); + expect(store.state.isJustExitPause).to.equal(true); + }); + + it('resetRecord', async function () { + store.commit('resetRecord'); + // expect(store.state.startTimeRecord).to.equal(moment().utc()); + expect(store.state.timerRecord).to.equal(0); + expect(store.state.distanceRecord).to.equal(0); + expect(store.state.geoLat).to.equal(0); + expect(store.state.geoLong).to.equal(0); + expect(store.state.geoJsonRecord[0].type).to.equal('Feature'); + expect(store.state.geoJsonRecord[0].properties.time).to.equal(''); + expect( + store.state.geoJsonRecord[0].properties.coordinateProperties.times + .length + ).to.equal(0); + expect( + store.state.geoJsonRecord[0].properties.coordinateProperties.heart + .length + ).to.equal(0); + expect(store.state.geoJsonRecord[0].geometry.type).to.equal('LineString'); + expect(store.state.geoJsonRecord[0].geometry.coordinates.length).to.equal( + 0 + ); + }); + + it('setTimerId', async function () { + store.commit('setTimerId', '23334'); + expect(store.state.timerId).to.equal('23334'); + }); + + it('resetGeoTrace', async function () { + store.commit('resetGeoTrace'); + expect(store.state.geoJsonRecord[0].type).to.equal('Feature'); + expect(store.state.geoJsonRecord[0].properties.time).to.equal(''); + expect( + store.state.geoJsonRecord[0].properties.coordinateProperties.times + .length + ).to.equal(0); + expect( + store.state.geoJsonRecord[0].properties.coordinateProperties.heart + .length + ).to.equal(0); + expect(store.state.geoJsonRecord[0].geometry.type).to.equal('LineString'); + expect(store.state.geoJsonRecord[0].geometry.coordinates.length).to.equal( + 0 + ); + }); + + it('setTimerId', async function () { + store.commit('setTimerId', '23334'); + expect(store.state.timerId).to.equal('23334'); + }); + + it('setCoordGeoTrace', async function () { + store.commit('setCoordGeoTrace', [49.4, 2.6]); + expect(store.state.geoJsonRecord[0].geometry.coordinates[0][0]).to.equal( + 49.4 + ); + expect(store.state.geoJsonRecord[0].geometry.coordinates[0][1]).to.equal( + 2.6 + ); + expect(store.state.geoLong).to.equal(49.4); + expect(store.state.geoLat).to.equal(2.6); + }); + + it('setDisplayBurgerMenu', async function () { + store.commit('setDisplayBurgerMenu', true); + expect(store.state.displayBurgerMenu).to.equal(true); + }); + + it('setBurgerMenuContents', async function () { + let menu = [ + { + label: 'Modifier', + disabled: false, + action: function () { + EventBus.$emit('modifyMarker'); + } + }, + { + label: 'Supprimer', + disabled: true, + action: function () { + EventBus.$emit('deleteMarker'); + } + } + ]; + store.commit('setBurgerMenuContents', menu); + + expect(store.state.burgerMenuContents[0].label).to.equal('Modifier'); + expect(store.state.burgerMenuContents[1].label).to.equal('Supprimer'); + expect(store.state.burgerMenuContents[0].disabled).to.equal(false); + expect(store.state.burgerMenuContents[1].disabled).to.equal(true); + }); + + it('setConnexionStatus', async function () { + store.commit('setConnexionStatus', false); + expect(store.state.connexionStatus).to.equal(false); + }); + + it('setSettings', async function () { + store.commit('setSettings', { + language: 'fr', + displayModals: { + warningOffline: false + }, + visibleMarkersOnMap: [ + { id: 0, visible: true }, + { id: 1, visible: true }, + { id: 2, visible: true }, + { id: 3, visible: true }, + { id: 4, visible: true }, + { id: 5, visible: true } + ], + mapFilter: { + activityFilterOnMap: true, + distanceMax: 100, + distanceMin: 0 + }, + activitiesListFilter: { + isMapVisible: true, + isPhotosVisible: true, + isDetailsVisible: true, + distanceMax: 100, + distanceMin: 0, + activityTypeNotSelected: [] + }, + activitiesAnimalsListFilter: { + isMapVisible: true, + isPhotosVisible: true, + isDetailsVisible: true, + distanceMax: 100, + distanceMin: 0, + activityTypeNotSelected: [] + } + }); + expect(store.state.settings.displayModals.warningOffline).to.equal(false); + }); + + it('setWarningOfflineModal', async function () { + store.commit('setWarningOfflineModal', true); + expect(store.state.settings.displayModals.warningOffline).to.equal(true); + }); + + it('push_settings_activitiesListFilter_activityTypeNotSelected', async function () { + store.commit( + 'push_settings_activitiesListFilter_activityTypeNotSelected', + 'Balade' + ); + store.commit( + 'push_settings_activitiesListFilter_activityTypeNotSelected', + 'Essai' + ); + expect( + store.state.settings.activitiesListFilter.activityTypeNotSelected[0] + ).to.equal('Balade'); + expect( + store.state.settings.activitiesListFilter.activityTypeNotSelected[1] + ).to.equal('Essai'); + }); + + it('pop_settings_activitiesListFilter_activityTypeNotSelected', async function () { + store.commit( + 'pop_settings_activitiesListFilter_activityTypeNotSelected', + 'Balade' + ); + + expect( + store.state.settings.activitiesListFilter.activityTypeNotSelected[0] + ).to.equal('Essai'); + }); + + it('push_settings_activitiesAnimalsListFilter_activityTypeNotSelected', async function () { + store.commit( + 'push_settings_activitiesAnimalsListFilter_activityTypeNotSelected', + 'Balade' + ); + store.commit( + 'push_settings_activitiesAnimalsListFilter_activityTypeNotSelected', + 'Essai' + ); + expect( + store.state.settings.activitiesAnimalsListFilter + .activityTypeNotSelected[0] + ).to.equal('Balade'); + expect( + store.state.settings.activitiesAnimalsListFilter + .activityTypeNotSelected[1] + ).to.equal('Essai'); + }); + + it('pop_settings_activitiesAnimalsListFilter_activityTypeNotSelected', async function () { + store.commit( + 'pop_settings_activitiesAnimalsListFilter_activityTypeNotSelected', + 'Balade' + ); + + expect( + store.state.settings.activitiesListFilter.activityTypeNotSelected[0] + ).to.equal('Essai'); + }); + + it('set_settings_activitiesAnimalsListFilter_mapVisible', async function () { + store.commit('set_settings_activitiesAnimalsListFilter_mapVisible', true); + expect( + store.state.settings.activitiesAnimalsListFilter.isMapVisible + ).to.equal(true); + store.commit( + 'set_settings_activitiesAnimalsListFilter_mapVisible', + false + ); + expect( + store.state.settings.activitiesAnimalsListFilter.isMapVisible + ).to.equal(false); + }); + + it('set_settings_activitiesAnimalsListFilter_photosVisible', async function () { + store.commit( + 'set_settings_activitiesAnimalsListFilter_photosVisible', + true + ); + expect( + store.state.settings.activitiesAnimalsListFilter.isPhotosVisible + ).to.equal(true); + store.commit( + 'set_settings_activitiesAnimalsListFilter_photosVisible', + false + ); + expect( + store.state.settings.activitiesAnimalsListFilter.isPhotosVisible + ).to.equal(false); + }); + + it('set_settings_activitiesAnimalsListFilter_detailsVisible', async function () { + store.commit( + 'set_settings_activitiesAnimalsListFilter_detailsVisible', + true + ); + expect( + store.state.settings.activitiesAnimalsListFilter.isDetailsVisible + ).to.equal(true); + store.commit( + 'set_settings_activitiesAnimalsListFilter_detailsVisible', + false + ); + expect( + store.state.settings.activitiesAnimalsListFilter.isDetailsVisible + ).to.equal(false); + }); + + it('set_settings_activitiesAnimalsListFilter_distanceMax', async function () { + store.commit('set_settings_activitiesAnimalsListFilter_distanceMax', 100); + expect( + store.state.settings.activitiesAnimalsListFilter.distanceMax + ).to.equal(100); + store.commit('set_settings_activitiesAnimalsListFilter_distanceMax', 50); + expect( + store.state.settings.activitiesAnimalsListFilter.distanceMax + ).to.equal(50); + }); + + it('set_settings_activitiesAnimalsListFilter_distanceMin', async function () { + store.commit('set_settings_activitiesAnimalsListFilter_distanceMin', 100); + expect( + store.state.settings.activitiesAnimalsListFilter.distanceMin + ).to.equal(100); + store.commit('set_settings_activitiesAnimalsListFilter_distanceMin', 50); + expect( + store.state.settings.activitiesAnimalsListFilter.distanceMin + ).to.equal(50); + }); + + it('setDistanceMaxOnFilterMap', async function () { + store.commit('setDistanceMaxOnFilterMap', 50); + + expect(store.state.settings.mapFilter.distanceMax).to.equal(50); + }); + + it('setDistanceMinOnFilterMap', async function () { + store.commit('setDistanceMinOnFilterMap', 13); + + expect(store.state.settings.mapFilter.distanceMin).to.equal(13); + }); + + it('set_settings_language', async function () { + store.commit('set_settings_language', 'en'); + + expect(store.state.settings.language).to.equal('en'); + }); + + it('Input Name vide', async function () { + assert.strictEqual(store.state.applicationState.map, false); + }); + + it('nbUploadingImages is an Array', async function () { + expect(store.state.nbUploadingImages).to.be.a('array'); + }); + + it('nbUploadingImages : Création entrée', async function () { + store.commit('setNbUploadingImages', { + id: new Mongo.ObjectID('123456789012345678901212'), + number: 2 + }); + expect( + store.state.nbUploadingImages[store.state.nbUploadingImages.length - 1] + .id._str + ).to.equal('123456789012345678901212'); + expect( + store.state.nbUploadingImages[store.state.nbUploadingImages.length - 1] + .number + ).to.equal(2); + }); + + it("nbUploadingImages : soustraire 1 de l'entrée précédente ", async function () { + store.commit( + 'decreaseNbUploadingImages', + new Mongo.ObjectID('123456789012345678901212') + ); + expect( + store.state.nbUploadingImages[store.state.nbUploadingImages.length - 1] + .id._str + ).to.equal('123456789012345678901212'); + expect( + store.state.nbUploadingImages[store.state.nbUploadingImages.length - 1] + .number + ).to.equal(1); + }); + + it("nbUploadingImages : Arrivée à zéro, retrait de l'entré ", async function () { + store.commit( + 'decreaseNbUploadingImages', + new Mongo.ObjectID('123456789012345678901212') + ); + expect(store.state.nbUploadingImages.length).to.equal(0); + }); + + it('setvisibleMarkerOnMap : Init ', async function () { + expect(store.state.settings.visibleMarkersOnMap).to.be.a('array'); + expect(store.state.settings.visibleMarkersOnMap[0].id).to.equal(0); + expect(store.state.settings.visibleMarkersOnMap[1].visible).to.equal( + true + ); + //expect(store.state.visibleMarkersOnMap[2]).to.equal("Sac à crottes"); + }); + + it('setvisibleMarkerOnMap ', async function () { + store.commit('setvisibleMarkerOnMap', ['zzz', 'aaa']); + expect(store.state.settings.visibleMarkersOnMap[0]).to.equal('zzz'); + expect(store.state.settings.visibleMarkersOnMap[1]).to.equal('aaa'); + }); + + // A faire, bloque à la fin des test componentInstance.submit(); + // assert.strictEqual(resultDate, "01:01:01"); + // log.info(wrapper.find({ ref: "input-checked-animal" }).html()); + // log.info("Chekced"); + // log.info(wrapper.find("#A01")); + + // assert.strictEqual(wrapper.find("#Notes0").element.value, "Notes1"); + // assert.strictEqual(wrapper.find("#Notes1").element.value, "Notes2"); + }); +} + +// ****** +//A faire +// ***** +/* it("settings_set_warningOfflineModal", async function () { + store.dispatch("settings_set_warningOfflineModal", false); + expect(store.state.settings.displayModals.warningOffline).to.equal(false); + }); + */ +// ** +// ** +// ** + +/* + * + * Composant ActivityAnimalCard + * + */ +/* + describe("Composant ActivityAnimalCard: ", () => { + const state = { + nbUploadingImages: [], + geoJsonRecord: [], + activityType: [ + "Balade", + "Cani-cross", + "Cani-VTT", + "Course à pied", + "Equitation - Dressage", + "Equitation - Balade", + "Vélo", + "Randonnée", + ], + }; + const mutations = { + DisableBottomBar() {}, + EnableTopLeftButton() {}, + SetTopRightButtonState() {}, + SetTopRightButtonLabel() {}, + disableTraceRecorded() {}, + }; + const store = new Vuex.Store({ + state, + mutations, + }); + log.info("Composant ActivityAnimalCard: "); + let wrapper; + let componentInstance; + + log.info("Composant ActivityAnimalCard : APRES"); + + + beforeEach(() => { + Meteor.userId = function () { + return Random.id(); + }; + + Meteor.userById = function () { + return "zjKTB3xutRYgSk2Ne"; + }; + + const idOwner = Random.id(); + + Meteor.animal = function () { + return { + Name: "Phantom", + Owner: idOwner, + Type: "Chien", + isShare: true, + Birthday: "12/11/2020", + Weight: 10, + Height: 12, + }; + }; + + let PetId = Meteor.call("animal.create", { + Name: "Phantom", + Type: "Chien", + isShare: true, + Birthday: "12/11/2020", + Weight: 10, + Height: 12, + }); + + wrapper = mount(ActivityAnimalCard, { + localVue, + store, + i18n, + // bootstrapvue, + propsData: { + activity: { + _id: { _str: "c1cac9ff37895957c2160b11" }, + IDAnimal: PetId, + IDActivity: { _str: "95ed6468a22d8765f93769b7" }, + ActivityOwner: "zjKTB3xutRYgSk2Ne", + ActivityName: "Balade1", + ActivityDescription: "", + AnimalName: "Phantom", + AnimalOwner: idOwner, + ActivityType: "Balade", + DateAct: new Date("20210316T07:29:39Z"), + TimeFCtotal: 1024, + Distance: 1.3525403372249576, + Notes: null, + center: [], + Id_GPX: { _str: "a2ed24f539a217a7aa10e909" }, + }, + userId: "EDdfrrff", + userById: "Stéphanie", + }, + data() { + return {}; + }, + stubs: { + "b-row": true, + "b-col": true, + "b-spinner": true, + "b-card": true, + "b-avatar": true, + "b-iconstack": true, + "b-icon": true, + "b-button": true, + }, + }); + componentInstance = wrapper.vm; + }); + it("Method FormatDate", async function () { + + + let date = new Date("2020-12-24 08:57:19.000Z"); + let DateUTC = moment("2020-12-24 08:57:19.000Z"); + + let resultDate = componentInstance.FormatDate(date); + assert.strictEqual( + resultDate, + "Le " + + DateUTC.format("DD/MM/YYYY") + + " à " + + DateUTC.format("HH:mm:ss") + ); + }); + it("Method FormatTime", async function () { + + + let resultDate = componentInstance.FormatTime(3661); + assert.strictEqual(resultDate, "01:01:01"); + }); + }); */ diff --git a/tests/cypress/data/users/users.json b/tests/cypress/data/users/users.json new file mode 100644 index 0000000..d1cb256 --- /dev/null +++ b/tests/cypress/data/users/users.json @@ -0,0 +1,140 @@ +[ + { + "_id": "ack5L5ivM5ACBeNpK", + "createdAt": { + "$date": "2021-05-25T16:33:11.240Z" + }, + "services": { + "password": { + "bcrypt": "$2b$10$9gkiI4iV6f8eni85PnjVEulbQ3QaguOoj.RUA9XAPCN9qVIIPb1z6" + }, + "email": { + "verificationTokens": [{ + "token": "EbTjNlouMfIoa10m3X7LoCIy0izOkLMwod1YPQUPf1A", + "address": "ttt@iiaaaaaa.com", + "when": { + "$date": "2021-05-25T16:33:11.245Z" + } + }] + }, + "resume": { + "loginTokens": [{ + "when": { + "$date": "2023-12-19T16:19:46.426Z" + }, + "hashedToken": "5kHgHAVDYUnKRue35GkrL3IPrWiPtkwQmm/3Vj5D6JM=" + }, { + "when": { + "$date": "2023-12-21T22:09:06.131Z" + }, + "hashedToken": "3jp2uHTjmDkfA4rmJZhpSKB03rW7tBhoWkql1Cvpt2s=" + }, { + "when": { + "$date": "2024-02-05T08:40:13.307Z" + }, + "hashedToken": "WqytPusLbqjtV4zS5nr2VhSV9ilPbgMbK5xwVXL2tNk=" + }] + } + }, + "emails": [{ + "address": "ttt@iiaaaaaa.com", + "verified": false + }], + "profile": { + "firstname": "Steph", + "lastname": "Harry", + "reCaptchaResponse": "03AGdBq26nku4RK1uJ0weHUx8C3ojJ6CWdYExA68S4yyEKazC-9tZFPQVwdEfGJED5sQ3fUI8N-My0PIk6-FN95aem5vgEVka6IvKLL7fIh7HKaKqzDY4f5uVZJ145rwtsKH_1G54iWVXLQcsAb5qg0F1pY-IW1dkokUeDN_fo8plnOooMLsJHGCNT8f_sYYYej6EDP9w_3uKFyyiaTaPZj_Sfs724oKGiFpHd4R36JI8lylV91clI_RP1BPboePQDLCvE3xruDOP3Gbl9ZEa5Y42YnJSa5Cpdl-rG7gFdz8-sJlWrbhVnXPxTlqaZotnY2ICcjEibswkNzOwBqiq5dvHZLsPtvTLwtbja4zeuEbwX7q0y9b41eVqp9m5IbjO5PJUdFa96KynZ510Bn8t_YLv18G7cZ698ujvXODzO-S2MLQ3_R2N4JcM3fi5MskKBNZpbBo7eA2Vt" + }, + "settings": { + "language": "fr", + "displayModals": { + "warningOffline": true + }, + "visibleMarkersOnMap": [{ + "id": 0, + "visible": true + }, { + "id": 1, + "visible": true + }, { + "id": 2, + "visible": true + }, { + "id": 3, + "visible": true + }, { + "id": 4, + "visible": true + }, { + "id": 5, + "visible": true + }, { + "id": 6, + "visible": true + }, { + "id": 7, + "visible": true + }], + "mapFilter": { + "activityFilterOnMap": true, + "distanceMax": 100, + "distanceMin": 0 + }, + "activitiesListFilter": { + "isMapVisible": true, + "isPhotosVisible": true, + "isDetailsVisible": true, + "distanceMax": 100, + "distanceMin": 0, + "activityTypeNotSelected": [] + }, + "activitiesAnimalsListFilter": { + "isMapVisible": true, + "isPhotosVisible": false, + "isDetailsVisible": true, + "distanceMax": 38, + "distanceMin": 0, + "activityTypeNotSelected": ["Cani-cross", "Cani-VTT", "Canoe - Kayak", "Canin - Education"] + }, + "displayOnBoarding": false + }, + "versions": [{ + "createdAt": { + "$date": "2021-05-27T07:44:35.000Z" + }, + "webVersion": "0.42.2", + "mobileVersion": "0.11.0", + "viewPortWidth": 424 + }, { + "createdAt": { + "$date": "2021-05-27T07:49:51.000Z" + }, + "webVersion": "0.42.2", + "mobileVersion": "0.11.0", + "viewPortWidth": 424 + }, { + "createdAt": { + "$date": "2023-12-19T19:12:47.000Z" + }, + "webVersion": "0.89.2", + "mobileVersion": "0.18.0", + "viewPortWidth": 412 + }], + "status": { + "online": false, + "lastLogin": { + "date": { + "$date": "2024-02-05T08:40:13.361Z" + }, + "ipAddr": "127.0.0.1", + "userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Cypress/13.6.4 Chrome/114.0.5735.289 Electron/25.8.4 Safari/537.36" + } + }, + "fcmToken": { + "createdAt": { + "$date": "2023-12-19T19:13:01.000Z" + }, + "token": "f2RC-nLWQBSuvwjgHPUWFf:APA91bGoJmfTTrNspV5w5g1DwyXNzcRmdTLFCdOIrjZWOjP0f1ZK7kFT3R7-5AQL95vnS8vFuEq6zKNuXX2qOpHDJ7rNo8Od7xXWsU1hVJDzYmbyBlpAvrFykX6_sbbZzbvzk5qGA7rc" + } +} +] \ No newline at end of file diff --git a/tests/cypress/integration/essai.spec.js b/tests/cypress/integration/essai.spec.js new file mode 100644 index 0000000..8c2ec1e --- /dev/null +++ b/tests/cypress/integration/essai.spec.js @@ -0,0 +1,21 @@ +describe("Map", () => { + beforeEach(function () { + cy.task('seed:database'); + //cy.visit("http://localhost:3000/"); +}); + + it("Log the new user", () => { + cy.visit("http://localhost:3000/map/-1", {timeout: 600000}); + cy.get('[href="/"]').click(); +// cy.get('.text-3xl').should("eq", 'Welcome to Meteor!'); +// cy.get('.text-xl').should("eq", 'Learn Meteor!'); + //cy.get("input#at-field-email").type("ste.monnier@gmail.com"); + //cy.get("input#at-field-password").type("eeeeee"); + //cy.get("input#at-field-password_again").type("awesome-password"); + // I added a name field on meteor user accounts system + // cy.get("input#at-field-name").type("Jean-Peter"); + // cy.get("button#at-btn").click(); + + }); + +}); diff --git a/tests/cypress/plugins/index.js b/tests/cypress/plugins/index.js new file mode 100644 index 0000000..9f665e1 --- /dev/null +++ b/tests/cypress/plugins/index.js @@ -0,0 +1,35 @@ +/// +// *********************************************************** +// This example plugins/index.js can be used to load plugins +// +// You can change the location of this file or turn off loading +// the plugins file with the 'pluginsFile' configuration option. +// +// You can read more here: +// https://on.cypress.io/plugins-guide +// *********************************************************** + +// This function is called when a project is opened or re-opened (e.g. due to +// the project's config changing) + +/** + * @type {Cypress.PluginConfig} + */ +// eslint-disable-next-line no-unused-vars +//const preprocessor = + +//const { startDevServer } = require("@cypress/webpack-dev-server"); +//const webpackConfig = require("../../../webpack.config"); + +module.exports = (on, config) => { + // require("@cypress/code-coverage/task")(on, config); + // require("@cypress/vue/dist/plugins/webpack")(on, config); + // on("dev-server:start", (options) => + // startDevServer({ options, webpackConfig }) + // ); + //preprocessor(on, config); +require('./seeder')(on, config); + // `on` is used to hook into various events Cypress emits + // `config` is the resolved Cypress config + return config; +}; diff --git a/tests/cypress/plugins/seeder.js b/tests/cypress/plugins/seeder.js new file mode 100644 index 0000000..ca09d87 --- /dev/null +++ b/tests/cypress/plugins/seeder.js @@ -0,0 +1,25 @@ +// tests/cypress/plugins/seeder.js + +const path = require('path'); + +const { Seeder } = require('mongo-seeding'); +const config = { + database: 'mongodb://localhost:3001/meteor', + dropDatabase: true, +}; +const seeder = new Seeder(config); +const collections = seeder.readCollectionsFromPath( + path.resolve('./tests/cypress/plugins/data') +); + +module.exports = (on, config) => { + on('task', { + async 'seed:database'() { + await seeder.import(collections); + // > If you do not need to return a value, explicitly return null to + // > signal that the given event has been handled. + return null; + }, + }); + return config; +}; \ No newline at end of file diff --git a/tests/cypress/support/commands.js b/tests/cypress/support/commands.js new file mode 100644 index 0000000..0900426 --- /dev/null +++ b/tests/cypress/support/commands.js @@ -0,0 +1,40 @@ +// *********************************************** +// This example commands.js shows you how to +// create various custom commands and overwrite +// existing commands. +// +// For more comprehensive examples of custom +// commands please read more here: +// https://on.cypress.io/custom-commands +// *********************************************** +// +// +// -- This is a parent command -- +// Cypress.Commands.add('login', (email, password) => { ... }) +// +// +// -- This is a child command -- +// Cypress.Commands.add('drag', { prevSubject: 'element'}, (subject, options) => { ... }) +// +// +// -- This is a dual command -- +// Cypress.Commands.add('dismiss', { prevSubject: 'optional'}, (subject, options) => { ... }) +// +// +// -- This will overwrite an existing command -- +// Cypress.Commands.overwrite('visit', (originalFn, url, options) => { ... }) + +// Returns a Meteor instance from the browser. +Cypress.Commands.add('getMeteor', () => + cy.window().then(({ Meteor }) => { + if (!Meteor) { + // When trying to access the `window` object before “visiting” a page in a + // test, we get an `undefined` value. Therefore, the `Meteor` object is + // undefined. We visit the app so that we get the Window instance of the + // app from which we get the `Meteor` instance used in tests + // cy.visit('/'); + return cy.window().then(({ Meteor: MeteorSecondTry }) => MeteorSecondTry); + } + return Meteor; + }) +); diff --git a/tests/cypress/support/component-index.html b/tests/cypress/support/component-index.html new file mode 100644 index 0000000..e69de29 diff --git a/tests/cypress/support/component.js b/tests/cypress/support/component.js new file mode 100644 index 0000000..e69de29 diff --git a/tests/cypress/support/e2e.js b/tests/cypress/support/e2e.js new file mode 100644 index 0000000..c7b5591 --- /dev/null +++ b/tests/cypress/support/e2e.js @@ -0,0 +1 @@ +import '@cypress/code-coverage/support' \ No newline at end of file diff --git a/tests/cypress/support/index.js b/tests/cypress/support/index.js new file mode 100644 index 0000000..fb5e117 --- /dev/null +++ b/tests/cypress/support/index.js @@ -0,0 +1,22 @@ +// *********************************************************** +// This example support/index.js is processed and +// loaded automatically before your test files. +// +// This is a great place to put global configuration and +// behavior that modifies Cypress. +// +// You can change the location of this file or turn off +// automatically serving support files with the +// 'supportFile' configuration option. +// +// You can read more here: +// https://on.cypress.io/configuration +// *********************************************************** + +// Import commands.js using ES2015 syntax: +import "./commands"; +//import "@cypress/vue/dist/support"; +import "@cypress/code-coverage/support"; + +// Alternatively you can use CommonJS syntax: +// require('./commands') diff --git a/tests/eee.js b/tests/eee.js new file mode 100644 index 0000000..e69de29 diff --git a/tests/fixtures/example.json b/tests/fixtures/example.json new file mode 100644 index 0000000..02e4254 --- /dev/null +++ b/tests/fixtures/example.json @@ -0,0 +1,5 @@ +{ + "name": "Using fixtures to represent data", + "email": "hello@cypress.io", + "body": "Fixtures are a great way to mock data for responses to routes" +} diff --git a/tests/main.js b/tests/main.js new file mode 100644 index 0000000..ef98ab2 --- /dev/null +++ b/tests/main.js @@ -0,0 +1,46 @@ +import assert from 'assert'; +import { Meteor } from 'meteor/meteor'; + +import './methods/traces'; +import './methods/markers'; +import './methods/activities'; +import './methods/petshared'; +import './methods/animal'; +import './methods/comments'; +import './methods/routes'; +import './methods/connect'; +import './methods/tracking'; + +//import './views/ViewActivityAdd'; +//import './Vue/vuex'; + +if (Meteor.isServer) { + Accounts.createUser({ + username: 'UserName', + email: 'ste.monnier@gmail.com', + password: 'EEEE', + profile: { + firstname: 'Stéphane', + lastname: 'Monnier' + } + }); +} + +describe('General', function () { + it('package.json has correct name', async function () { + const { name } = await import('../package.json'); + assert.strictEqual(name, 'vuegpx'); + }); + + if (Meteor.isClient) { + it('client is not server', function () { + assert.strictEqual(Meteor.isServer, false); + }); + } + + if (Meteor.isServer) { + it('server is not client', function () { + assert.strictEqual(Meteor.isClient, false); + }); + } +}); diff --git a/tests/methods/activities.js b/tests/methods/activities.js new file mode 100644 index 0000000..22b065d --- /dev/null +++ b/tests/methods/activities.js @@ -0,0 +1,3209 @@ +import assert from 'assert'; +import Pets from '../../imports/api/collections/Pets'; +import Activities from '../../imports/api/collections/Activities'; +import ActivitiesGPX from '../../imports/api/collections/ActivitiesGPX'; +import PetsActivities from '../../imports/api/collections/PetsActivities'; +import activityType from '../../imports/api/collections/activityType'; +import { + activityshare, + activitymodify, + activitycreate, + activitydelete, + activityaddimage, + activitydeleteimage, + activitycreatefromgps, + activitygpxunshared, + activitygpxlike, + activitygpxdislike, + activityanimaldeleteimage, + activityanimaladdimage, + activityshareaddimage, + getPolylineCorrectGpsActivityGpxById, + getActivityGpxById +} from '../../imports/api/methods/Activity'; + +import { + animalactivitycreate, + animalactivitycreatefromgps +} from '../../imports/api/methods/Animal'; +import { expect } from 'chai'; +import { Random } from 'meteor/random'; + +import '../../imports/api/methods/Activity'; + +import '../../imports/api/methods/Animal'; +import '../../imports/api/methods/PetsShared'; +import { Meteor } from 'meteor/meteor'; +import log from 'loglevel'; +import moment from 'moment'; + +//const MongoClient = require("mongodb").MongoClient; + +if (Meteor.isServer) { + describe('Activity', function () { + describe('methods', function () { + const userId = Random.id(); + let activityId; + let Pet1Id; + let Pet2Id; + + beforeEach(async function () { + await Activities.removeAsync({}); + await ActivitiesGPX.removeAsync({}); + await PetsActivities.removeAsync({}); + await Pets.removeAsync({}); + + activityId = await Activities.insertAsync({ + Owner: userId, + Name: 'ZZZZ', + description: 'description', + Type: 'type', + DateAct: 'DateAct', + TimeFCtotal: 600, + Distance: 5.6, + Notes: [], + checked: [], + center: [], + isShared: false, + Id_GPX: null, + Validated: true, + images: [] + }); + + Pet1Id = await Pets.insertAsync({ + Owner: userId, + Name: 'Phantom', + Type: 'Chien', + isShare: true, + Birthday: '12/11/2020', + Weight: 10, + Height: 12 + }); + Pet2Id = await Pets.insertAsync({ + Owner: userId, + Name: 'Medoc', + Type: 'Cheval', + isShare: true, + Birthday: '12/11/2010', + Weight: 150, + Height: 170 + }); + }); + + /* + * + * Method : activity.delete : Vous devez être loggué. + * + */ + it('activity.delete : Vous devez être loggué.', function () { + // expect(function () { + activitydelete.call({ activityId, Type: 'Humaine' }, (err) => { + assert.strictEqual( + err.error, + 'Activities.methods.activitydelete.notloggued' + ); + }); + /* }).to.throw( + 'Vous devez être loggué. [Activities.methods.activitydelete.notloggued]' + ); */ + }); + + /* + * + * Method : activity.delete : Humaine Vous n'êtes pas le propriétiare + * + */ + it("activity.delete : Humaine Vous n'êtes pas le propriétiare", async function () { + const userId = Random.id(); + const context = { userId }; + const activity = { + name: 'Test', + type: 'type', + time: '11:22:33', + description: 'description', + // heure: "20:01:02", + // date: "12/12/2020", + dateActivity: '2020-12-12T20:01:02+01:00', + distance: 5.6, + Notes: [], + checked: [Pet1Id + ',Phantom,0', Pet2Id + ',Medor,1'] + }; + + const activId = await activitycreate._execute(context, activity); + const otherContext = { userId: Random.id() }; + // expect(function () { + activitydelete._execute( + otherContext, + { + activityId: activId, + Type: 'Humaine' + }, + (err) => { + assert.strictEqual( + err.error, + 'Activities.methods.activitydelete.unauthorized' + ); + } + ); + /* }).to.throw( + "Vous n'êtes pas le propriétiare [Activities.methods.activitydelete.unauthorized]" + ); */ + }); + + /* + * + * Method : activity.delete : Humaine + * + */ + it('activity.delete: peut effacer activité humaine', async function () { + const userId = Random.id(); + const context = { userId }; + const activity = { + name: 'Test', + type: 'type', + time: '11:22:33', + description: 'description', + // heure: "20:01:02", + // date: "12/12/2020", + dateActivity: '2020-12-12T20:01:02+01:00', + distance: 5.6, + Notes: [], + checked: [Pet1Id + ',Phantom,0', Pet2Id + ',Medor,1'] + }; + + const activId = await activitycreate._execute(context, activity); + + await activitydelete._execute(context, { + activityId: activId, + Type: 'Humaine' + }); + assert.strictEqual( + await Activities.find({ _id: activId }).countAsync(), + 0 + ); + }); + + /* + * + * Method : activity.delete : Animal + * + */ + it('activity.delete: peut effacer activité animal', async function () { + const userId = Random.id(); + const context = { userId }; + let id = await animalactivitycreate._execute(context, { + Id: Pet1Id, + time: '00:10:00', + name: 'Essai', + description: 'Description', + //heure: "08:10:00", + dateActivity: '2020-03-01T08:10:00+01:00', + type: 'Cani-cross', + distance: 10, + Notes: 'Notes' + }); + + await activitydelete._execute(context, { + activityId: id, + Type: 'Animal' + }); + assert.strictEqual( + await PetsActivities.find({ _id: id }).countAsync(), + 0 + ); + }); + + /* + * + * Method : activity.delete : Animal Vous n'êtes pas le propriétiare + * + */ + it("activity.delete: Animal Vous n'êtes pas le propriétiare", async function () { + const userId = Random.id(); + const context = { userId }; + let id = await animalactivitycreate._execute(context, { + Id: Pet1Id, + time: '00:10:00', + name: 'Essai', + description: 'Description', + //heure: "08:10:00", + dateActivity: '2020-03-01T08:10:00+01:00', + type: 'Cani-cross', + distance: 10, + Notes: 'Notes' + }); + + const otherContext = { userId: Random.id() }; + + // expect(function () { + activitydelete._execute( + otherContext, + { + activityId: id, + Type: 'Animal' + }, + (err) => { + assert.strictEqual( + err.error, + 'Activities.methods.activitydelete.unauthorized' + ); + } + ); + /* }).to.throw( + "Vous n'êtes pas le propriétiare [Activities.methods.activitydelete.unauthorized]" + ); */ + }); + + /* + * + * Method : activity.create : peut créer une activité humaine + * + */ + it('activity.create : peut créer une activité humaine', async function () { + const Activity = { + name: 'Test', + type: 'type', + time: '11:22:33', + description: 'description', + // heure: "20:01:02", + // date: "12/12/2020", + dateActivity: '2020-12-12T20:01:02+01:00', + distance: 5.6, + Notes: [], + checked: [Pet1Id + ',Phantom,0', Pet2Id + ',Medor,1'] + }; + + const userId = Random.id(); + const context = { userId }; + + const ActId = await activitycreate._execute(context, Activity); + + assert.strictEqual( + await Activities.find({ _id: ActId }).countAsync(), + 1 + ); + + const result = await Activities.findOneAsync({ _id: ActId }); + + assert.strictEqual( + moment(result.DateAct).utc().format(), + '2020-12-12T19:01:02Z' + ); + assert.strictEqual(await PetsActivities.find().countAsync(), 2); + expect(result.Distance).to.equal(5.6); + expect(result.Validated).to.equal(true); + expect(result.isShared).to.equal(false); + expect(result.Type).to.equal('type'); + expect(result.Name).to.equal('Test'); + expect(result.description).to.equal('description'); + + // A faire : Ajout Animals + }); + + /* + * + * Method : activity.create : Vous devez être loggué. + * + * */ + it( + 'activity.create : Vous devez être loggué.', + async function () { + const Activity = { + name: 'Test', + type: 'type', + time: '11:22:33', + description: 'description', + // heure: "20:01:02", + // date: "12/12/2020", + dateActivity: '2020-12-12T20:01:02+01:00', + distance: 5.6, + Notes: [], + checked: [Pet1Id + ',Phantom,0', Pet2Id + ',Medor,1'] + }; + + const userId = Random.id(); + const context = { userId }; + + // expect(function () { + activitycreate.call(Activity); + }, + (err) => { + assert.strictEqual( + err.error, + 'Activities.methods.activitycreate.notloggued' + ); + + /* }).to.throw( + 'Vous devez être loggué. [Activities.methods.activitycreate.notloggued]' + ); */ + } + ); + /* + * + * Method : activity.modify + * + */ + it('activity.modify : peut modifier une activité humaine', async function () { + let Activity = { + name: 'Test', + type: 'type', + time: '11:22:33', + description: 'description', + // heure: "20:01:02", + // date: "12/12/2020", + dateActivity: '2020-12-12T20:01:02+01:00', + distance: 5.6, + Notes: [], + checked: [Pet1Id + ',Phantom,0', Pet2Id + ',Medor,1'] + }; + + const userId = Random.id(); + const context = { userId }; + + const ActId = await activitycreate._execute(context, Activity); + + Activity = { + id: ActId, + center: [0, 0], + Id_GPX: null, + name: 'Test1', + type: 'Course', + time: '11:23:34', + description: 'description1', + // heure: "20:01:02", + // date: "12/12/2020", + dateActivity: '2020-12-12T22:01:02+02:00', + distance: 5.8, + Notes: [], + checked: [Pet1Id + ',Phantom,0', undefined, Pet2Id + ',Medor,2'] + }; + + await activitymodify._execute(context, Activity); + assert.strictEqual( + await Activities.find({ _id: ActId }).countAsync(), + 1 + ); + + assert.strictEqual( + moment((await Activities.findOneAsync({ _id: ActId })).DateAct) + .utc() + .format(), + '2020-12-12T20:01:02Z' + ); + assert.strictEqual(await PetsActivities.find().countAsync(), 2); + + const result = await Activities.findOneAsync({ _id: ActId }); + + expect(result.Distance).to.equal(5.8); + expect(result.Validated).to.equal(true); + expect(result.isShared).to.equal(false); + expect(result.Type).to.equal('Course'); + expect(result.Name).to.equal('Test1'); + expect(result.description).to.equal('description1'); + + // A faire : Ajout Animals + }); + + /* + * + * Method : activity.modify : Vous devez être loggué. + * + */ + it('activity.modify : Vous devez être loggué.', async function () { + let Activity = { + name: 'Test', + type: 'type', + time: '11:22:33', + description: 'description', + // heure: "20:01:02", + // date: "12/12/2020", + dateActivity: '2020-12-12T20:01:02+01:00', + distance: 5.6, + Notes: [], + checked: [Pet1Id + ',Phantom,0', Pet2Id + ',Medor,1'] + }; + + const userId = Random.id(); + const context = { userId }; + + const ActId = await activitycreate._execute(context, Activity); + + Activity = { + id: ActId, + center: [0, 0], + Id_GPX: null, + name: 'Test1', + type: 'Coruse', + time: '11:23:34', + description: 'description1', + // heure: "20:01:02", + // date: "12/12/2020", + dateActivity: '2020-12-12T22:01:02+02:00', + distance: 5.8, + Notes: [], + checked: [Pet1Id + ',Phantom,0', undefined, Pet2Id + ',Medor,2'] + }; + + // expect(function () { + activitymodify.call(Activity, (err) => { + assert.strictEqual( + err.error, + 'Activities.methods.activitymodify.notloggued' + ); + + /* }).to.throw( + 'Vous devez être loggué. [Activities.methods.activitymodify.notloggued]' + ); */ + }); + + /* + * + * Method : activity.modify : Vous n'êtes pas le propriétiare + * + */ + it("activity.modify : Vous n'êtes pas le propriétiare", async function () { + let Activity = { + name: 'Test', + type: 'type', + time: '11:22:33', + description: 'description', + // heure: "20:01:02", + // date: "12/12/2020", + dateActivity: '2020-12-12T20:01:02+01:00', + distance: 5.6, + Notes: [], + checked: [Pet1Id + ',Phantom,0', Pet2Id + ',Medor,1'] + }; + + const userId = Random.id(); + const context = { userId }; + + const ActId = await activitycreate._execute(context, Activity); + + Activity = { + id: ActId, + center: [0, 0], + Id_GPX: null, + name: 'Test1', + type: 'Coruse', + time: '11:23:34', + description: 'description1', + // heure: "20:01:02", + // date: "12/12/2020", + dateActivity: '2020-12-12T22:01:02+02:00', + distance: 5.8, + Notes: [], + checked: [Pet1Id + ',Phantom,0', undefined, Pet2Id + ',Medor,2'] + }; + + const otherContext = { userId: Random.id() }; + + // expect(function () { + activitymodify._execute(otherContext, Activity, (err) => { + assert.strictEqual( + err.error, + 'Activities.methods.activitymodify.unauthorized' + ); + }); + + /* }).to.throw( + "Vous n'êtes pas le propriétiare [Activities.methods.activitymodify.unauthorized]" + ); */ + + /* }).to.throw( + "Vous n'êtes pas le propriétiare [Activities.methods.activitymodify.unauthorized]" + ); */ + }); + }); + + /* + * + * Method : activity.createfromgps + * + */ + it('activitycreatefromgps : peut créer une activité humaine avec un enrigstrement GPS', async function () { + const Activity = { + name: 'Test', + type: 'type', + time: '11:22:33', + description: 'description', + // heure: "20:01:02", + // date: "12/12/2020", + dateActivity: '2020-12-12T20:01:02+01:00', + distance: 5.6, + Notes: [], + checked: [Pet1Id + ',Phantom,0', Pet2Id + ',Medor,1'], + geojson: [ + { + type: 'Feature', + properties: { + time: '', + coordinateProperties: { + times: [], + heart: [] + } + }, + geometry: { + type: 'LineString', + coordinates: [[49, 23]] + } + } + ] + }; + + const userId = Random.id(); + const context = { userId }; + + const ActId = await activitycreatefromgps._execute(context, Activity); + + assert.strictEqual( + await Activities.find({ _id: ActId }).countAsync(), + 1 + ); + + assert.strictEqual( + moment((await Activities.findOneAsync({ _id: ActId })).DateAct) + .utc() + .format(), + '2020-12-12T19:01:02Z' + ); + assert.strictEqual(await PetsActivities.find().countAsync(), 2); + + let result = await Activities.findOneAsync({ _id: ActId }); + assert.strictEqual( + await ActivitiesGPX.find({ _id: result.Id_GPX }).countAsync(), + 1 + ); + + expect(result.Distance).to.equal(5.6); + expect(result.Owner).to.equal(userId); + expect(result.Validated).to.equal(true); + expect(result.isShared).to.equal(false); + expect(result.Type).to.equal('type'); + expect(result.Name).to.equal('Test'); + expect(result.description).to.equal('description'); + + // Faire animaux + }); + + /* + * + * Method : activity.createfromgps : Vous devez être loggué. + * + */ + it('activitycreatefromgps : Vous devez être loggué.', function () { + const Activity = { + name: 'Test', + type: 'type', + time: '11:22:33', + description: 'description', + // heure: "20:01:02", + // date: "12/12/2020", + dateActivity: '2020-12-12T20:01:02+01:00', + distance: 5.6, + Notes: [], + checked: [Pet1Id + ',Phantom,0', Pet2Id + ',Medor,1'], + geojson: [ + { + type: 'Feature', + properties: { + time: '', + coordinateProperties: { + times: [], + heart: [] + } + }, + geometry: { + type: 'LineString', + coordinates: [[49, 23]] + } + } + ] + }; + + // expect(function () { + activitycreatefromgps.call(Activity, (err) => { + assert.strictEqual( + err.error, + 'Activities.methods.activitycreatefromgps.notloggued' + ); + }); + /* }).to.throw( + 'Vous devez être loggué. [Activities.methods.activitycreatefromgps.notloggued]' + ); */ + }); + + /* + * + * Method : get.activitygpxbyid + * + */ + it('getactivitygpxbyid : peut récupérer une activité humaine avec un enrigstrement GPS by Id', async function () { + const Activity = { + name: 'Test', + type: 'type', + time: '11:22:33', + description: 'description', + // heure: "20:01:02", + // date: "12/12/2020", + dateActivity: '2020-12-12T20:01:02+01:00', + distance: 5.6, + Notes: [], + checked: [Pet1Id + ',Phantom,0', Pet2Id + ',Medor,1'], + geojson: [ + { + type: 'Feature', + properties: { + time: '', + coordinateProperties: { + times: [], + heart: [] + } + }, + geometry: { + type: 'LineString', + coordinates: [[49, 23]] + } + } + ] + }; + + const userId = Random.id(); + const context = { userId }; + + const ActId = await activitycreatefromgps._execute(context, Activity); + + const resultA = await Activities.findOneAsync({ _id: ActId }); + + const result = await getActivityGpxById._execute(context, { + id: resultA.Id_GPX + }); + + console.log('result : ', result); + // Add more tests + expect(result.center[0]).to.equal(23); + expect(result.center[1]).to.equal(49); + expect(result.SelectLike[0]).to.equal(userId); + expect(result.Owner).to.equal(userId); + //expect(result.images).to.equal([]); + }); + + /* + * + * Method : get.activitygpxbyid : Vous devez être loggué. + * + */ + it('getactivitygpxbyid : Vous devez être loggué.', function () { + // expect(function () { + getActivityGpxById.call({ id: new Mongo.ObjectID() }, (err) => { + assert.strictEqual( + err.error, + 'ActivitiesGPX.methods.getactivitygpxbyid.notloggued' + ); + }); + /* }).to.throw( + 'Vous devez être loggué. [ActivitiesGPX.methods.getactivitygpxbyid.notloggued]' + ); */ + }); + + /* + * + * Method : activity.addimage + * + */ + it('activityaddimage : peut ajouter une image à une activité humaine', async function () { + const file = { + asset_id: '123', + public_id: 'id_Public', + version: 1, + version_id: 'DEsf54fk', + signature: 'Sign1', + width: 1024, + height: 800, + format: 'png', + resource_type: 'image', + created_at: '2020-01-03T01:03:00', + tags: ['Essai', 'Re'], + bytes: 434455, + type: 'image', + etag: 'Test', + placeholder: true, + url: 'http://placeholder.com', + secure_url: 'https://placeholder.com', + original_filename: 'IMG_3435', + original_extension: 'png', + folder: 'folder' + }; + + let Activity = { + name: 'Test', + type: 'type', + time: '11:22:33', + description: 'description', + // heure: "20:01:02", + // date: "12/12/2020", + dateActivity: '2020-12-12T20:01:02+01:00', + distance: 5.6, + Notes: [], + checked: [Pet1Id + ',Phantom,0', Pet2Id + ',Medor,1'] + }; + + const userId = Random.id(); + const context = { userId }; + + const actId = await activitycreate._execute(context, Activity); + + await activityaddimage._execute(context, { + IdActivity: actId, + file: file + }); + + assert.strictEqual( + await Activities.find({ 'images.asset_id': '123' }).countAsync(), + 1 + ); + }); + /* + * + * Method : activity.addimage : Vous devez être loggué. + * + */ + it('activityaddimage : Vous devez être loggué.', function () { + const file = { + asset_id: '123', + public_id: 'id_Public', + version: 1, + version_id: 'DEsf54fk', + signature: 'Sign1', + width: 1024, + height: 800, + format: 'png', + resource_type: 'image', + created_at: '2020-01-03T01:03:00', + tags: ['Essai', 'Re'], + bytes: 434455, + type: 'image', + etag: 'Test', + placeholder: true, + url: 'http://placeholder.com', + secure_url: 'https://placeholder.com', + original_filename: 'IMG_3435', + original_extension: 'png', + folder: 'folder' + }; + + // expect(function () { + activityaddimage.call( + { + IdActivity: activityId, + file: file + }, + (err) => { + assert.strictEqual( + err.error, + 'Activities.methods.activityaddimage.notloggued' + ); + } + ); + /* }).to.throw( + 'Vous devez être loggué. [Activities.methods.activityaddimage.notloggued]' + ); */ + }); + /* + * + * Method : activity.addimage : Vous n'êtes pas le propriétiare + * + */ + it("activityaddimage : Vous n'êtes pas le propriétiare", async function () { + const file = { + asset_id: '123', + public_id: 'id_Public', + version: 1, + version_id: 'DEsf54fk', + signature: 'Sign1', + width: 1024, + height: 800, + format: 'png', + resource_type: 'image', + created_at: '2020-01-03T01:03:00', + tags: ['Essai', 'Re'], + bytes: 434455, + type: 'image', + etag: 'Test', + placeholder: true, + url: 'http://placeholder.com', + secure_url: 'https://placeholder.com', + original_filename: 'IMG_3435', + original_extension: 'png', + folder: 'folder' + }; + + let Activity = { + name: 'Test', + type: 'type', + time: '11:22:33', + description: 'description', + // heure: "20:01:02", + // date: "12/12/2020", + dateActivity: '2020-12-12T20:01:02+01:00', + distance: 5.6, + Notes: [], + checked: [Pet1Id + ',Phantom,0', Pet2Id + ',Medor,1'] + }; + + const userId = Random.id(); + const context = { userId }; + + const actId = await activitycreate._execute(context, Activity); + + const otherContext = { userId: Random.id() }; + // expect(function () { + activityaddimage._execute( + otherContext, + { + IdActivity: actId, + file: file + }, + (err) => { + assert.strictEqual( + err.error, + 'Activities.methods.activityaddimage.unauthorized' + ); + } + ); + /* .to.throw( + "Vous n'êtes pas le propriétiare [Activities.methods.activityaddimage.unauthorized]" + ); */ + }); + + /* + * + * Method : activity.deleteimage : Vous devez être loggué. + * + */ + it('activitydeleteimage : Vous devez être loggué.', async function () { + const file = { + asset_id: '123', + public_id: 'id_Public', + version: 1, + version_id: 'DEsf54fk', + signature: 'Sign1', + width: 1024, + height: 800, + format: 'png', + resource_type: 'image', + created_at: '2020-01-03T01:03:00', + tags: ['Essai', 'Re'], + bytes: 434455, + type: 'image', + etag: 'Test', + placeholder: true, + url: 'http://placeholder.com', + secure_url: 'https://placeholder.com', + original_filename: 'IMG_3435', + original_extension: 'png', + folder: 'folder' + }; + + let Activity = { + name: 'Test', + type: 'type', + time: '11:22:33', + description: 'description', + // heure: "20:01:02", + // date: "12/12/2020", + dateActivity: '2020-12-12T20:01:02+01:00', + distance: 5.6, + Notes: [], + checked: [Pet1Id + ',Phantom,0', Pet2Id + ',Medor,1'] + }; + + const userId = Random.id(); + const context = { userId }; + + const actId = await activitycreate._execute(context, Activity); + + await activityaddimage._execute(context, { + IdActivity: actId, + file: file + }); + + // expect(function () { + activitydeleteimage.call( + { + IdActivity: actId, + Id: '123' + }, + (err) => { + assert.strictEqual( + err.error, + 'Activities.methods.activitydeleteimage.notloggued' + ); + } + ); + /* }).to.throw( + 'Vous devez être loggué. [Activities.methods.activitydeleteimage.notloggued]' + ); */ + }); + /* + * + * Method : activity.deleteimage : Vous n'êtes pas le propriétiare + * + */ + it("activitydeleteimage : Vous n'êtes pas le propriétiare", async function () { + const file = { + asset_id: '123', + public_id: 'id_Public', + version: 1, + version_id: 'DEsf54fk', + signature: 'Sign1', + width: 1024, + height: 800, + format: 'png', + resource_type: 'image', + created_at: '2020-01-03T01:03:00', + tags: ['Essai', 'Re'], + bytes: 434455, + type: 'image', + etag: 'Test', + placeholder: true, + url: 'http://placeholder.com', + secure_url: 'https://placeholder.com', + original_filename: 'IMG_3435', + original_extension: 'png', + folder: 'folder' + }; + + let Activity = { + name: 'Test', + type: 'type', + time: '11:22:33', + description: 'description', + // heure: "20:01:02", + // date: "12/12/2020", + dateActivity: '2020-12-12T20:01:02+01:00', + distance: 5.6, + Notes: [], + checked: [Pet1Id + ',Phantom,0', Pet2Id + ',Medor,1'] + }; + + const userId = Random.id(); + const context = { userId }; + + const actId = await activitycreate._execute(context, Activity); + + await activityaddimage._execute(context, { + IdActivity: actId, + file: file + }); + + const otherContext = { userId: Random.id() }; + + //expect(function () { + activitydeleteimage._execute( + otherContext, + { + IdActivity: actId, + Id: '123' + }, + (err) => { + assert.strictEqual( + err.error, + 'Activities.methods.activitydeleteimage.unauthorized' + ); + } + ); + /* }).to.throw( + "Vous n'êtes pas le propriétiare [Activities.methods.activitydeleteimage.unauthorized]" + ); */ + }); + /* + * + * Method : activity.deleteimage : peut supprimer une image d'une activité humaine + * + */ + it("activitydeleteimage : peut supprimer une image d'une activité humaine", async function () { + const file = { + asset_id: '123', + public_id: 'id_Public', + version: 1, + version_id: 'DEsf54fk', + signature: 'Sign1', + width: 1024, + height: 800, + format: 'png', + resource_type: 'image', + created_at: '2020-01-03T01:03:00', + tags: ['Essai', 'Re'], + bytes: 434455, + type: 'image', + etag: 'Test', + placeholder: true, + url: 'http://placeholder.com', + secure_url: 'https://placeholder.com', + original_filename: 'IMG_3435', + original_extension: 'png', + folder: 'folder' + }; + + let Activity = { + name: 'Test', + type: 'type', + time: '11:22:33', + description: 'description', + // heure: "20:01:02", + // date: "12/12/2020", + dateActivity: '2020-12-12T20:01:02+01:00', + distance: 5.6, + Notes: [], + checked: [Pet1Id + ',Phantom,0', Pet2Id + ',Medor,1'] + }; + + const userId = Random.id(); + const context = { userId }; + + const actId = await activitycreate._execute(context, Activity); + + await activityaddimage._execute(context, { + IdActivity: actId, + file: file + }); + + const file1 = { + asset_id: '1234', + public_id: 'id_Public', + version: 1, + version_id: 'DEsf54fk', + signature: 'Sign1', + width: 1024, + height: 800, + format: 'png', + resource_type: 'image', + created_at: '2020-01-03T01:03:00', + tags: ['Essai', 'Re'], + bytes: 434455, + type: 'image', + etag: 'Test', + placeholder: true, + url: 'http://placeholder.com', + secure_url: 'https://placeholder.com', + original_filename: 'IMG_3435', + original_extension: 'png', + folder: 'folder' + }; + + await activityaddimage._execute(context, { + IdActivity: actId, + file: file1 + }); + + await activitydeleteimage._execute(context, { + IdActivity: actId, + Id: '123' + }); + + assert.strictEqual( + await Activities.find({ 'images.asset_id': '123' }).countAsync(), + 0 + ); + assert.strictEqual( + await Activities.find({ 'images.asset_id': '1234' }).countAsync(), + 1 + ); + }); + + /* + * + * Method : activity.animaladdimage + * + */ + + it('activityanimaladdimage : Vous devez être loggué.', async function () { + let userId = Random.id(); + let context = { userId }; + const file = { + asset_id: '123', + public_id: 'id_Public', + version: 1, + version_id: 'DEsf54fk', + signature: 'Sign1', + width: 1024, + height: 800, + format: 'png', + resource_type: 'image', + created_at: '2020-01-03T01:03:00', + tags: ['Essai', 'Re'], + bytes: 434455, + type: 'image', + etag: 'Test', + placeholder: true, + url: 'http://placeholder.com', + secure_url: 'https://placeholder.com', + original_filename: 'IMG_3435', + original_extension: 'png', + folder: 'folder' + }; + + let id = await animalactivitycreate._execute(context, { + Id: Pet1Id, + time: '00:10:00', + name: 'Essai', + description: 'Description', + //heure: "08:10:00", + dateActivity: '2020-03-01T08:10:00+01:00', + type: 'Cani-cross', + distance: 10, + Notes: 'Notes' + }); + + // expect(function () { + activityanimaladdimage.call( + { + IdActivity: id, + file: file + }, + (err) => { + assert.strictEqual( + err.error, + 'Activities.methods.activityanimaladdimage.notloggued' + ); + } + ); + /* }).throw( + 'Vous devez être loggué. [Activities.methods.activityanimaladdimage.notloggued]' + ); */ + }); + + it("activityanimaladdimage : Vous n'êtes pas le propriétiare", async function () { + let userId = Random.id(); + let context = { userId }; + const file = { + asset_id: '123', + public_id: 'id_Public', + version: 1, + version_id: 'DEsf54fk', + signature: 'Sign1', + width: 1024, + height: 800, + format: 'png', + resource_type: 'image', + created_at: '2020-01-03T01:03:00', + tags: ['Essai', 'Re'], + bytes: 434455, + type: 'image', + etag: 'Test', + placeholder: true, + url: 'http://placeholder.com', + secure_url: 'https://placeholder.com', + original_filename: 'IMG_3435', + original_extension: 'png', + folder: 'folder' + }; + + let id = await animalactivitycreate._execute(context, { + Id: Pet1Id, + time: '00:10:00', + name: 'Essai', + description: 'Description', + //heure: "08:10:00", + dateActivity: '2020-03-01T08:10:00+01:00', + type: 'Cani-cross', + distance: 10, + Notes: 'Notes' + }); + // expect(function () { + activityanimaladdimage._execute( + { userId: Random.id() }, + { + IdActivity: id, + file: file + }, + (err) => { + assert.strictEqual( + err.error, + 'Activities.methods.activityanimaladdimage.unauthorized' + ); + } + ); + /* }).throw( + "Vous n'êtes pas le propriétiare [Activities.methods.activityanimaladdimage.unauthorized]" + ); */ + }); + + it('activityanimaladdimage : peut ajouter une image à une activité animal', async function () { + let userId = Random.id(); + let context = { userId }; + const file = { + asset_id: '123', + public_id: 'id_Public', + version: 1, + version_id: 'DEsf54fk', + signature: 'Sign1', + width: 1024, + height: 800, + format: 'png', + resource_type: 'image', + created_at: '2020-01-03T01:03:00', + tags: ['Essai', 'Re'], + bytes: 434455, + type: 'image', + etag: 'Test', + placeholder: true, + url: 'http://placeholder.com', + secure_url: 'https://placeholder.com', + original_filename: 'IMG_3435', + original_extension: 'png', + folder: 'folder' + }; + + let id = await animalactivitycreate._execute(context, { + Id: Pet1Id, + time: '00:10:00', + name: 'Essai', + description: 'Description', + //heure: "08:10:00", + dateActivity: '2020-03-01T08:10:00+01:00', + type: 'Cani-cross', + distance: 10, + Notes: 'Notes' + }); + + await activityanimaladdimage._execute(context, { + IdActivity: id, + file: file + }); + + assert.strictEqual( + await PetsActivities.find({ 'images.asset_id': '123' }).countAsync(), + 1 + ); + }); + + /* + * + * Method : activity.animaldeleteimage + * + */ + it('activityanimaldeleteimage : Vous devez être loggué.', async function () { + let userId = Random.id(); + let context = { userId }; + const file = { + asset_id: '123', + public_id: 'id_Public', + version: 1, + version_id: 'DEsf54fk', + signature: 'Sign1', + width: 1024, + height: 800, + format: 'png', + resource_type: 'image', + created_at: '2020-01-03T01:03:00', + tags: ['Essai', 'Re'], + bytes: 434455, + type: 'image', + etag: 'Test', + placeholder: true, + url: 'http://placeholder.com', + secure_url: 'https://placeholder.com', + original_filename: 'IMG_3435', + original_extension: 'png', + folder: 'folder' + }; + + let id = await animalactivitycreate._execute(context, { + Id: Pet1Id, + time: '00:10:00', + name: 'Essai', + description: 'Description', + //heure: "08:10:00", + dateActivity: '2020-03-01T08:10:00+01:00', + type: 'Cani-cross', + distance: 10, + Notes: 'Notes' + }); + + await activityanimaladdimage._execute(context, { + IdActivity: id, + file: file + }); + + const file1 = { + asset_id: '1234', + public_id: 'id_Public', + version: 1, + version_id: 'DEsf54fk', + signature: 'Sign1', + width: 1024, + height: 800, + format: 'png', + resource_type: 'image', + created_at: '2020-01-03T01:03:00', + tags: ['Essai', 'Re'], + bytes: 434455, + type: 'image', + etag: 'Test', + placeholder: true, + url: 'http://placeholder.com', + secure_url: 'https://placeholder.com', + original_filename: 'IMG_3435', + original_extension: 'png', + folder: 'folder' + }; + + await activityanimaladdimage._execute(context, { + IdActivity: id, + file: file1 + }); + + // expect(function () { + activityanimaldeleteimage.call( + { + IdActivity: id, + Id: '123' + }, + (err) => { + assert.strictEqual( + err.error, + 'Activities.methods.activityanimaldeleteimage.notloggued' + ); + } + ); + /* }).to.throw( + 'Vous devez être loggué. [Activities.methods.activityanimaldeleteimage.notloggued]' + ); */ + }); + + it('activityanimaldeleteimage : Vous devez être loggué.', async function () { + let userId = Random.id(); + let context = { userId }; + const file = { + asset_id: '123', + public_id: 'id_Public', + version: 1, + version_id: 'DEsf54fk', + signature: 'Sign1', + width: 1024, + height: 800, + format: 'png', + resource_type: 'image', + created_at: '2020-01-03T01:03:00', + tags: ['Essai', 'Re'], + bytes: 434455, + type: 'image', + etag: 'Test', + placeholder: true, + url: 'http://placeholder.com', + secure_url: 'https://placeholder.com', + original_filename: 'IMG_3435', + original_extension: 'png', + folder: 'folder' + }; + + let id = await animalactivitycreate._execute(context, { + Id: Pet1Id, + time: '00:10:00', + name: 'Essai', + description: 'Description', + //heure: "08:10:00", + dateActivity: '2020-03-01T08:10:00+01:00', + type: 'Cani-cross', + distance: 10, + Notes: 'Notes' + }); + + await activityanimaladdimage._execute(context, { + IdActivity: id, + file: file + }); + + const file1 = { + asset_id: '1234', + public_id: 'id_Public', + version: 1, + version_id: 'DEsf54fk', + signature: 'Sign1', + width: 1024, + height: 800, + format: 'png', + resource_type: 'image', + created_at: '2020-01-03T01:03:00', + tags: ['Essai', 'Re'], + bytes: 434455, + type: 'image', + etag: 'Test', + placeholder: true, + url: 'http://placeholder.com', + secure_url: 'https://placeholder.com', + original_filename: 'IMG_3435', + original_extension: 'png', + folder: 'folder' + }; + + await activityanimaladdimage._execute(context, { + IdActivity: id, + file: file1 + }); + + // expect(function () { + activityanimaldeleteimage._execute( + { userId: Random.id() }, + { + IdActivity: id, + Id: '123' + }, + (err) => { + assert.strictEqual( + err.error, + 'Activities.methods.activityanimaldeleteimage.unauthorized' + ); + } + ); + /* }).to.throw( + "Vous n'êtes pas le propriétiare [Activities.methods.activityanimaldeleteimage.unauthorized]" + ); */ + }); + + it("activityanimaldeleteimage : peut supprimer une image d'une activité animal", async function () { + let userId = Random.id(); + let context = { userId }; + const file = { + asset_id: '123', + public_id: 'id_Public', + version: 1, + version_id: 'DEsf54fk', + signature: 'Sign1', + width: 1024, + height: 800, + format: 'png', + resource_type: 'image', + created_at: '2020-01-03T01:03:00', + tags: ['Essai', 'Re'], + bytes: 434455, + type: 'image', + etag: 'Test', + placeholder: true, + url: 'http://placeholder.com', + secure_url: 'https://placeholder.com', + original_filename: 'IMG_3435', + original_extension: 'png', + folder: 'folder' + }; + + let id = await animalactivitycreate._execute(context, { + Id: Pet1Id, + time: '00:10:00', + name: 'Essai', + description: 'Description', + //heure: "08:10:00", + dateActivity: '2020-03-01T08:10:00+01:00', + type: 'Cani-cross', + distance: 10, + Notes: 'Notes' + }); + + await activityanimaladdimage._execute(context, { + IdActivity: id, + file: file + }); + + const file1 = { + asset_id: '1234', + public_id: 'id_Public', + version: 1, + version_id: 'DEsf54fk', + signature: 'Sign1', + width: 1024, + height: 800, + format: 'png', + resource_type: 'image', + created_at: '2020-01-03T01:03:00', + tags: ['Essai', 'Re'], + bytes: 434455, + type: 'image', + etag: 'Test', + placeholder: true, + url: 'http://placeholder.com', + secure_url: 'https://placeholder.com', + original_filename: 'IMG_3435', + original_extension: 'png', + folder: 'folder' + }; + + await activityanimaladdimage._execute(context, { + IdActivity: id, + file: file1 + }); + + await activityanimaldeleteimage._execute(context, { + IdActivity: id, + Id: '123' + }); + assert.strictEqual( + await PetsActivities.find({ 'images.asset_id': '123' }).countAsync(), + 0 + ); + assert.strictEqual( + await PetsActivities.find({ 'images.asset_id': '1234' }).countAsync(), + 1 + ); + }); + + /* + * + * Method : activity.share (Pas connecté) + * + */ + it('activityshare : peut créer un parcours (Pas connecté)', async function () { + const file = [ + { + asset_id: '123', + public_id: 'id_Public', + version: 1, + version_id: 'DEsf54fk', + signature: 'Sign1', + width: 1024, + height: 800, + format: 'png', + resource_type: 'image', + created_at: '2020-01-03T01:03:00', + tags: ['Essai', 'Re'], + bytes: 434455, + type: 'image', + etag: 'Test', + placeholder: true, + url: 'http://placeholder.com', + secure_url: 'https://placeholder.com', + original_filename: 'IMG_3435', + original_extension: 'png', + folder: 'folder' + } + ]; + + let idGPX = await ActivitiesGPX.insertAsync({ + Owner: 'Desdde', + GPX: {} + }); + // expect(function () { + activityshare.call( + { + id: activityId, + name: 'Essai', + type: [1, 2], + description: 'Description', + time: '30:00:01', + distance: 4.3, + center: [1, 4], + Id_GPX: idGPX, + images: file, + comingFrom: '1', + dogFeatures: { + available: false, + free: false, + onLeash: false, + roadCrossing: false, + animalCrossbreeding: false, + animalCrossbreedingType: [], + difficulty: 0.0 + } + }, + (err) => { + assert.strictEqual( + err.error, + 'ActivitiesGPX.methods.activityshare.notloggued' + ); + } + ); + /* }).to.throw( + 'Vous devez être loggué. [ActivitiesGPX.methods.activityshare.notloggued]' + ); */ + + /* assert.strictEqual( + Activities.find({ _id: activityId, isShared: true }).count(), + 1 + ); */ + /* assert.strictEqual( + PetsActivities.find({ "image.asset_id": "1234" }).count(), + 1 + ); */ + }); + + /* + * + * Method : activityshare.addimage + * + */ + it('activityshareaddimage : Vous devez être loggué.', async function () { + const file = { + asset_id: '123', + public_id: 'id_Public', + version: 1, + version_id: 'DEsf54fk', + signature: 'Sign1', + width: 1024, + height: 800, + format: 'png', + resource_type: 'image', + created_at: '2020-01-03T01:03:00', + tags: ['Essai', 'Re'], + bytes: 434455, + type: 'image', + etag: 'Test', + placeholder: true, + url: 'http://placeholder.com', + secure_url: 'https://placeholder.com', + original_filename: 'IMG_3435', + original_extension: 'png', + folder: 'folder' + }; + + let idGPX = await ActivitiesGPX.insertAsync({ + Owner: 'Desdde', + GPX: {} + }); + // expect(function () { + activityshareaddimage.call( + { + IdActivity: idGPX, + file: file + }, + (err) => { + assert.strictEqual( + err.error, + 'ActivitiesGPX.methods.activityshareaddimage.notloggued' + ); + } + ); + /* }).to.throw( + 'Vous devez être loggué. [ActivitiesGPX.methods.activityshareaddimage.notloggued]' + ); */ + }); + it("activityshareaddimage : Vous n'êtes pas le propriétiare", async function () { + const file = { + asset_id: '123', + public_id: 'id_Public', + version: 1, + version_id: 'DEsf54fk', + signature: 'Sign1', + width: 1024, + height: 800, + format: 'png', + resource_type: 'image', + created_at: '2020-01-03T01:03:00', + tags: ['Essai', 'Re'], + bytes: 434455, + type: 'image', + etag: 'Test', + placeholder: true, + url: 'http://placeholder.com', + secure_url: 'https://placeholder.com', + original_filename: 'IMG_3435', + original_extension: 'png', + folder: 'folder' + }; + + let idGPX = await ActivitiesGPX.insertAsync({ + Owner: 'Desdde', + GPX: {} + }); + // expect(function () { + activityshareaddimage._execute( + { userId: Random.id() }, + { + IdActivity: idGPX, + file: file + }, + (err) => { + assert.strictEqual( + err.error, + 'ActivitiesGPX.methods.activityshareaddimage.unauthorized' + ); + } + ); + /* }).to.throw( + "Vous n'êtes pas le propriétiare [ActivitiesGPX.methods.activityshareaddimage.unauthorized]" + ); */ + }); + it('activityshareaddimage : peut ajouter une image à une activité partagée', async function () { + const file = { + asset_id: '123', + public_id: 'id_Public', + version: 1, + version_id: 'DEsf54fk', + signature: 'Sign1', + width: 1024, + height: 800, + format: 'png', + resource_type: 'image', + created_at: '2020-01-03T01:03:00', + tags: ['Essai', 'Re'], + bytes: 434455, + type: 'image', + etag: 'Test', + placeholder: true, + url: 'http://placeholder.com', + secure_url: 'https://placeholder.com', + original_filename: 'IMG_3435', + original_extension: 'png', + folder: 'folder' + }; + + let userId = Random.id(); + let context = { userId }; + + let idGPX = await ActivitiesGPX.insertAsync({ Owner: userId, GPX: {} }); + await activityshareaddimage._execute(context, { + IdActivity: idGPX, + file: file + }); + + assert.strictEqual( + await ActivitiesGPX.find({ _id: idGPX }).countAsync(), + 1 + ); + /* assert.strictEqual( + PetsActivities.find({ "image.asset_id": "1234" }).count(), + 1 + ); */ + }); + + /* + * + * Method : activitytype + * + */ + it("activitytype : récupère les types d'activité", async function () { + /* const dbName = "GPX"; + + // log.info("MONGO : " + Meteor.settings.private.MONGOURL); + // Use connect method to connect to the server + const client = await MongoClient.connect("mongodb://localhost:3001", { + useUnifiedTopology: true, + }); + + log.info("Connected successfully to server"); + const db = client.db(dbName); + + const collection = db.collection("activityType"); */ + + await activityType.insertAsync({ + activityType: [ + 'Balade', + 'Cani-cross', + 'Cani-VTT', + 'Course à pied', + 'Equitation - Dressage', + 'Equitation - Balade', + 'Vélo', + 'Randonnée', + 'EEEEEEE' + ] + }); + + let resultat; + log.info('AVANT CALL'); + await Meteor.call('activitytype', (error, result) => { + if (error) { + log.info(error); + } else { + log.info('DANS CALL'); + resultat = result; + } + }); + log.info('APRES CALL'); + /* log.info(resultat[0].activityType.length); + log.info(resultat[0].activityType); + + assert.strictEqual(resultat[0].activityType.length, 6); + assert.strictEqual(resultat[0].activityType, [ + "Balade", + "Cani-cross", + "Cani-VTT", + "Course à pied", + "Equitation - Dressage", + "Equitation - Balade", + "Vélo", + "Randonnée", + "EEEEEEE", + ]); */ + + //assert.equal(null, err); + }); + }); + }); +} + +if (Meteor.isServer) { + /* + * + * Method : activity.share (Pas propriétaire) + * + */ + describe('Activity: Method client', () => { + it('activityshare : peut partager une activité comingFrom: 1', async function () { + const userId = Random.id(); + + const Pet1Id = await Pets.insertAsync({ + Owner: userId, + Name: 'Phantom', + Type: 'Chien', + isShare: true, + Birthday: '12/11/2020', + Weight: 10, + Height: 12 + }); + + const Pet2Id = await Pets.insertAsync({ + Owner: userId, + Name: 'Medoc', + Type: 'Cheval', + isShare: true, + Birthday: '12/11/2010', + Weight: 150, + Height: 170 + }); + + const Activity = { + name: 'Test', + type: 'type', + time: '11:22:33', + description: 'description', + // heure: "20:01:02", + // date: "12/12/2020", + dateActivity: '2020-12-12T20:01:02+01:00', + distance: 5.6, + Notes: [], + checked: [Pet1Id + ',Phantom,0', Pet2Id + ',Medor,1'], + geojson: [ + { + type: 'Feature', + properties: { + time: '', + coordinateProperties: { + times: [], + heart: [] + } + }, + geometry: { + type: 'LineString', + coordinates: [[49, 23]] + } + } + ] + }; + + const context = { userId }; + const ActId = await activitycreatefromgps._execute(context, Activity); + + const result = await Activities.findOneAsync({ _id: ActId }); + + const otherUserContext = { userId: Random.id() }; + await activityshare._execute(context, { + id: ActId, + name: 'Essai', + type: [1.3], + description: 'Description', + time: '30:00:01', + distance: 4.3, + center: [1, 4], + Id_GPX: result.Id_GPX, + images: [], + comingFrom: '1', + dogFeatures: { + available: false, + free: false, + onLeash: false, + roadCrossing: false, + animalCrossbreeding: false, + animalCrossbreedingType: [], + difficulty: 0.0 + } + }); + const result1 = await ActivitiesGPX.findOneAsync({ + _id: result.Id_GPX + }); + + assert.strictEqual(result1.Shared, true); + assert.strictEqual( + ( + await Activities.findOneAsync({ + Id_GPX: result.Id_GPX + }) + ).isShared, + true + ); + }); + + it('activityshare : peut partager une activité (comingFrom: 2', async function () { + const userId = Random.id(); + + const Pet1Id = await Pets.insertAsync({ + Owner: userId, + Name: 'Phantom', + Type: 'Chien', + isShare: true, + Birthday: '12/11/2020', + Weight: 10, + Height: 12 + }); + + const Pet2Id = await Pets.insertAsync({ + Owner: userId, + Name: 'Medoc', + Type: 'Cheval', + isShare: true, + Birthday: '12/11/2010', + Weight: 150, + Height: 170 + }); + + const Activity = { + Id: Pet1Id, + name: 'Test', + type: 'type', + time: '11:22:33', + description: 'description', + // heure: "20:01:02", + // date: "12/12/2020", + dateActivity: '2020-12-12T20:01:02+01:00', + distance: 5.6, + Notes: 'Toto', + + geojson: [ + { + type: 'Feature', + properties: { + time: '', + coordinateProperties: { + times: [], + heart: [] + } + }, + geometry: { + type: 'LineString', + coordinates: [[49, 23]] + } + } + ] + }; + + const context = { userId }; + + const ActId = await animalactivitycreatefromgps._execute( + context, + Activity + ); + + const result = await PetsActivities.findOneAsync({ _id: ActId }); + + const otherUserContext = { userId: Random.id() }; + await activityshare._execute(context, { + id: ActId, + name: 'Essai', + type: [1, 3], + description: 'Description', + time: '30:00:01', + distance: 4.3, + center: [1, 4], + Id_GPX: result.Id_GPX, + images: [], + comingFrom: '2', + dogFeatures: { + available: false, + free: false, + onLeash: false, + roadCrossing: false, + animalCrossbreeding: false, + animalCrossbreedingType: [], + difficulty: 0.0 + } + }); + + assert.strictEqual( + ( + await ActivitiesGPX.findOneAsync({ + _id: result.Id_GPX + }) + ).Shared, + true + ); + assert.strictEqual( + ( + await PetsActivities.findOneAsync({ + Id_GPX: result.Id_GPX + }) + ).isShared, + true + ); + }); + + it('activityshare : peut partager une activité (Pas propriétaire)', async function () { + const userId = Random.id(); + + const Pet1Id = await Pets.insertAsync({ + Owner: userId, + Name: 'Phantom', + Type: 'Chien', + isShare: true, + Birthday: '12/11/2020', + Weight: 10, + Height: 12 + }); + + const Pet2Id = await Pets.insertAsync({ + Owner: userId, + Name: 'Medoc', + Type: 'Cheval', + isShare: true, + Birthday: '12/11/2010', + Weight: 150, + Height: 170 + }); + + const Activity = { + name: 'Test', + type: 'type', + time: '11:22:33', + description: 'description', + // heure: "20:01:02", + // date: "12/12/2020", + dateActivity: '2020-12-12T20:01:02+01:00', + distance: 5.6, + Notes: [], + checked: [Pet1Id + ',Phantom,0', Pet2Id + ',Medor,1'], + geojson: [ + { + type: 'Feature', + properties: { + time: '', + coordinateProperties: { + times: [], + heart: [] + } + }, + geometry: { + type: 'LineString', + coordinates: [[49, 23]] + } + } + ] + }; + + const context = { userId }; + const ActId = await activitycreatefromgps._execute(context, Activity); + + const result = await Activities.findOneAsync({ _id: ActId }); + + const otherUserContext = { userId: Random.id() }; + + // expect(function () { + activityshare._execute( + otherUserContext, + { + id: ActId, + name: 'Essai', + type: [1, 3], + description: 'Description', + time: '30:00:01', + distance: 4.3, + center: [1, 4], + Id_GPX: result.Id_GPX, + images: [], + comingFrom: '1', + dogFeatures: { + available: false, + free: false, + onLeash: false, + roadCrossing: false, + animalCrossbreeding: false, + animalCrossbreedingType: [], + difficulty: 0.0 + } + }, + (err) => { + assert.strictEqual( + err.error, + 'Activities.methods.activityshare.unauthorized' + ); + } + ); + /* }).to.throw( + "Vous n'êtes pas le propriétiare [ActivitiesGPX.methods.activityshare.unauthorized]" + ); */ + + //); + }); + }); + + describe('Activity: Method unshare', () => { + // + // activityunshare : peut efface un parcours 'départager' une activité + // + + it("activityunshare : peut efface un parcours 'départager' une activité", async function () { + log.info('activityunshare : peut efface un parcours'); + const userId = Random.id(); + + const Pet1Id = await Pets.insertAsync({ + Owner: userId, + Name: 'Phantom', + Type: 'Chien', + isShare: true, + Birthday: '12/11/2020', + Weight: 10, + Height: 12 + }); + + const Pet2Id = await Pets.insertAsync({ + Owner: userId, + Name: 'Medoc', + Type: 'Cheval', + isShare: true, + Birthday: '12/11/2010', + Weight: 150, + Height: 170 + }); + + log.info('Pet1Id : ' + Pet1Id); + + const Activity = { + name: 'Test', + type: 'type', + time: '11:22:33', + description: 'description', + // heure: "20:01:02", + // date: "12/12/2020", + dateActivity: '2020-12-12T20:01:02+01:00', + distance: 5.6, + Notes: [], + checked: [Pet1Id + ',Phantom,0', Pet2Id + ',Medor,1'], + geojson: [ + { + type: 'Feature', + properties: { + time: '', + coordinateProperties: { + times: [], + heart: [] + } + }, + geometry: { + type: 'LineString', + coordinates: [[49, 23]] + } + } + ] + }; + + const context = { userId }; + const ActId = await activitycreatefromgps._execute(context, Activity); + + log.info('ActId : ' + ActId); + const result = await Activities.findOneAsync({ _id: ActId }); + + await activityshare._execute(context, { + id: ActId, + name: 'Essai', + type: [2, 3], + description: 'Description', + time: '30:00:01', + distance: 4.3, + center: [1, 4], + Id_GPX: result.Id_GPX, + images: [], + comingFrom: '1', + dogFeatures: { + available: false, + free: false, + onLeash: false, + roadCrossing: false, + animalCrossbreeding: false, + animalCrossbreedingType: [], + difficulty: 0.0 + } + }); + + //); + + // expect(function () { + activitygpxunshared.call( + { + id: result.Id_GPX + }, + (err) => { + assert.strictEqual( + err.error, + 'ActivitiesGPX.methods.activitygpxunshared.notloggued' + ); + } + ); + /* }).to.throw( + 'Vous devez être loggué. [ActivitiesGPX.methods.activitygpxunshared.notloggued]' + ); + */ + // expect(function () { + activitygpxunshared._execute( + { userId: Random.id() }, + { + id: result.Id_GPX + }, + (err) => { + assert.strictEqual( + err.error, + 'ActivitiesGPX.methods.activitygpxunshared.unauthorized' + ); + } + ); + /* }).to.throw( + "Vous n'êtes pas le propriétiare [ActivitiesGPX.methods.activitygpxunshared.unauthorized]" + ); */ + + await activitygpxunshared._execute(context, { + id: result.Id_GPX + }); + + const resultGPX = await ActivitiesGPX.findOneAsync({ + _id: result.Id_GPX + }); + + assert.strictEqual(resultGPX.Shared, false); + }); + + // + // activityshare : Le parcours est déjà créé à partir de cette activité + // + + it('activitnshare : Le parcours est déjà créé à partir de cette activité', async function () { + const userId = Random.id(); + + const Pet1Id = await Pets.insertAsync({ + Owner: userId, + Name: 'Phantom', + Type: 'Chien', + isShare: true, + Birthday: '12/11/2020', + Weight: 10, + Height: 12 + }); + + const Pet2Id = await Pets.insertAsync({ + Owner: userId, + Name: 'Medoc', + Type: 'Cheval', + isShare: true, + Birthday: '12/11/2010', + Weight: 150, + Height: 170 + }); + + const Activity = { + name: 'Test', + type: 'type', + time: '11:22:33', + description: 'description', + // heure: "20:01:02", + // date: "12/12/2020", + dateActivity: '2020-12-12T20:01:02+01:00', + distance: 5.6, + Notes: [], + checked: [Pet1Id + ',Phantom,0', Pet2Id + ',Medor,1'], + geojson: [ + { + type: 'Feature', + properties: { + time: '', + coordinateProperties: { + times: [], + heart: [] + } + }, + geometry: { + type: 'LineString', + coordinates: [[49, 23]] + } + } + ] + }; + + const context = { userId }; + const ActId = await activitycreatefromgps._execute(context, Activity); + + const result = await Activities.findOneAsync({ _id: ActId }); + + await activityshare._execute(context, { + id: ActId, + name: 'Essai', + type: [2, 3], + description: 'Description', + time: '30:00:01', + distance: 4.3, + center: [1, 4], + Id_GPX: result.Id_GPX, + images: [], + comingFrom: '1', + dogFeatures: { + available: false, + free: false, + onLeash: false, + roadCrossing: false, + animalCrossbreeding: false, + animalCrossbreedingType: [], + difficulty: 0.0 + } + }); + + // expect(function () { + activityshare._execute( + context, + { + id: ActId, + name: 'Essai', + type: [2, 3], + description: 'Description', + time: '30:00:01', + distance: 4.3, + center: [1, 4], + Id_GPX: result.Id_GPX, + images: [], + comingFrom: '1', + dogFeatures: { + available: false, + free: false, + onLeash: false, + roadCrossing: false, + animalCrossbreeding: false, + animalCrossbreedingType: [], + difficulty: 0.0 + } + }, + (err) => { + assert.strictEqual( + err.error, + 'ActivitiesGPX.methods.activityshare.alreadyshared' + ); + } + ); + /* }).to.throw( + 'Le parcours est déjà créé à partir de cette activité [ActivitiesGPX.methods.activityshare.alreadyshared]' + ); */ + }); + + // + // activitygpxlike : Like un parcours + // + + it('activitygpxlike : Like un parcours', async function () { + const userId = Random.id(); + + const Pet1Id = await Pets.insertAsync({ + Owner: userId, + Name: 'Phantom', + Type: 'Chien', + isShare: true, + Birthday: '12/11/2020', + Weight: 10, + Height: 12 + }); + + const Pet2Id = await Pets.insertAsync({ + Owner: userId, + Name: 'Medoc', + Type: 'Cheval', + isShare: true, + Birthday: '12/11/2010', + Weight: 150, + Height: 170 + }); + + const Activity = { + name: 'Test', + type: 'type', + time: '11:22:33', + description: 'description', + // heure: "20:01:02", + // date: "12/12/2020", + dateActivity: '2020-12-12T20:01:02+01:00', + distance: 5.6, + Notes: [], + checked: [Pet1Id + ',Phantom,0', Pet2Id + ',Medor,1'], + geojson: [ + { + type: 'Feature', + properties: { + time: '', + coordinateProperties: { + times: [], + heart: [] + } + }, + geometry: { + type: 'LineString', + coordinates: [[49, 23]] + } + } + ] + }; + + const context = { userId }; + const ActId = await activitycreatefromgps._execute(context, Activity); + + const result = await Activities.findOneAsync({ _id: ActId }); + + await activityshare._execute(context, { + id: ActId, + name: 'Essai', + type: [1, 2], + description: 'Description', + time: '30:00:01', + distance: 4.3, + center: [1, 4], + Id_GPX: result.Id_GPX, + images: [], + comingFrom: '1', + dogFeatures: { + available: false, + free: false, + onLeash: false, + roadCrossing: false, + animalCrossbreeding: false, + animalCrossbreedingType: [], + difficulty: 0.0 + } + }); + + // expect(function () { + activitygpxlike.call( + { + Id: result.Id_GPX, + like: 4, + dislike: 2 + }, + (err) => { + assert.strictEqual( + err.error, + 'ActivitiesGPX.methods.activitygpxlike.notloggued' + ); + } + ); + /* }).to.throw( + 'Vous devez être loggué. [ActivitiesGPX.methods.activitygpxlike.notloggued]' + ); */ + + await activitygpxlike._execute(context, { + Id: result.Id_GPX, + like: 4, + dislike: 2 + }); + + const resultGPX = await ActivitiesGPX.findOneAsync({ + _id: result.Id_GPX + }); + + assert.strictEqual(resultGPX.like, 4); + assert.strictEqual(resultGPX.dislike, 2); + + expect(resultGPX.SelectLike.includes(userId)).to.be.true; + expect(resultGPX.SelectDislike.includes(userId)).to.be.false; + }); + + // + // activitygpsdislike : Dislike un parcours + // + + it('activitygpsdislike : Dislike un parcours', async function () { + const userId = Random.id(); + + const Pet1Id = await Pets.insertAsync({ + Owner: userId, + Name: 'Phantom', + Type: 'Chien', + isShare: true, + Birthday: '12/11/2020', + Weight: 10, + Height: 12 + }); + + const Pet2Id = await Pets.insertAsync({ + Owner: userId, + Name: 'Medoc', + Type: 'Cheval', + isShare: true, + Birthday: '12/11/2010', + Weight: 150, + Height: 170 + }); + + const Activity = { + name: 'Test', + type: 'type', + time: '11:22:33', + description: 'description', + // heure: "20:01:02", + // date: "12/12/2020", + dateActivity: '2020-12-12T20:01:02+01:00', + distance: 5.6, + Notes: [], + checked: [Pet1Id + ',Phantom,0', Pet2Id + ',Medor,1'], + geojson: [ + { + type: 'Feature', + properties: { + time: '', + coordinateProperties: { + times: [], + heart: [] + } + }, + geometry: { + type: 'LineString', + coordinates: [[49, 23]] + } + } + ] + }; + + const context = { userId }; + const ActId = await activitycreatefromgps._execute(context, Activity); + + const result = await Activities.findOneAsync({ _id: ActId }); + await activityshare._execute(context, { + id: ActId, + name: 'Essai', + type: [1, 2], + description: 'Description', + time: '30:00:01', + distance: 4.3, + center: [1, 4], + Id_GPX: result.Id_GPX, + images: [], + comingFrom: '1', + dogFeatures: { + available: false, + free: false, + onLeash: false, + roadCrossing: false, + animalCrossbreeding: false, + animalCrossbreedingType: [], + difficulty: 0.0 + } + }); + + // expect(function () { + activitygpxdislike.call( + { + Id: result.Id_GPX, + like: 2, + dislike: 9 + }, + (err) => { + assert.strictEqual( + err.error, + 'ActivitiesGPX.methods.activitygpxdislike.notloggued' + ); + } + ); + /* }).to.throw( + 'Vous devez être loggué. [ActivitiesGPX.methods.activitygpxdislike.notloggued]' + ); */ + + await activitygpxdislike._execute(context, { + Id: result.Id_GPX, + like: 2, + dislike: 9 + }); + + const resultGPX = await ActivitiesGPX.findOneAsync({ + _id: result.Id_GPX + }); + + assert.strictEqual(resultGPX.like, 2); + assert.strictEqual(resultGPX.dislike, 9); + + expect(resultGPX.SelectLike.includes(userId)).to.be.false; + expect(resultGPX.SelectDislike.includes(userId)).to.be.true; + }); + }); +} + +if (Meteor.isServer) { + describe('Activities Methods', function () { + let userId; + let idActivityGPX; + let context; + + beforeEach(async function () { + userId = Random.id(); + await ActivitiesGPX.removeAsync({}); + idActivityGPX = await ActivitiesGPX.insertAsync({ + Owner: userId, + GPX: { + type: 'FeatureCollection', + features: [ + { + type: 'Feature', + properties: { + time: '', + coordTimes: [ + '2021-03-26T17:22:08Z', + '2021-03-26T17:22:10Z', + '2021-03-26T17:22:11Z', + '2021-03-26T17:22:14Z', + '2021-03-26T17:22:21Z', + '2021-03-26T17:22:23Z', + '2021-03-26T17:22:26Z', + '2021-03-26T17:22:31Z', + '2021-03-26T17:22:34Z', + '2021-03-26T17:22:37Z', + '2021-03-26T17:22:40Z', + '2021-03-26T17:22:42Z', + '2021-03-26T17:22:46Z', + '2021-03-26T17:22:52Z', + '2021-03-26T17:23:14Z', + '2021-03-26T17:23:14Z', + '2021-03-26T17:23:17Z', + '2021-03-26T17:23:19Z', + '2021-03-26T17:23:21Z', + '2021-03-26T17:23:23Z', + '2021-03-26T17:23:25Z', + '2021-03-26T17:23:27Z', + '2021-03-26T17:23:29Z', + '2021-03-26T17:23:31Z', + '2021-03-26T17:23:33Z', + '2021-03-26T17:23:35Z', + '2021-03-26T17:23:37Z', + '2021-03-26T17:23:39Z', + '2021-03-26T17:23:41Z', + '2021-03-26T17:23:43Z', + '2021-03-26T17:23:45Z', + '2021-03-26T17:23:47Z', + '2021-03-26T17:23:53Z', + '2021-03-26T17:23:55Z', + '2021-03-26T17:23:57Z', + '2021-03-26T17:23:59Z', + '2021-03-26T17:24:01Z', + '2021-03-26T17:24:03Z', + '2021-03-26T17:24:05Z', + '2021-03-26T17:24:07Z', + '2021-03-26T17:24:09Z', + '2021-03-26T17:24:11Z', + '2021-03-26T17:24:15Z', + '2021-03-26T17:24:18Z', + '2021-03-26T17:24:18Z', + '2021-03-26T17:24:20Z', + '2021-03-26T17:24:22Z', + '2021-03-26T17:24:24Z', + '2021-03-26T17:24:26Z', + '2021-03-26T17:24:28Z', + '2021-03-26T17:24:30Z', + '2021-03-26T17:24:33Z', + '2021-03-26T17:24:44Z', + '2021-03-26T17:24:46Z', + '2021-03-26T17:24:48Z', + '2021-03-26T17:24:50Z', + '2021-03-26T17:24:53Z', + '2021-03-26T17:24:55Z', + '2021-03-26T17:24:57Z', + '2021-03-26T17:24:59Z', + '2021-03-26T17:25:01Z', + '2021-03-26T17:25:03Z', + '2021-03-26T17:25:05Z', + '2021-03-26T17:25:07Z', + '2021-03-26T17:25:09Z', + '2021-03-26T17:25:11Z', + '2021-03-26T17:25:13Z', + '2021-03-26T17:25:15Z', + '2021-03-26T17:25:17Z', + '2021-03-26T17:25:19Z', + '2021-03-26T17:25:21Z', + '2021-03-26T17:25:23Z', + '2021-03-26T17:25:25Z', + '2021-03-26T17:25:27Z', + '2021-03-26T17:25:29Z', + '2021-03-26T17:25:31Z', + '2021-03-26T17:25:34Z', + '2021-03-26T17:25:36Z', + '2021-03-26T17:25:38Z', + '2021-03-26T17:25:40Z', + '2021-03-26T17:25:42Z', + '2021-03-26T17:25:44Z', + '2021-03-26T17:25:46Z', + '2021-03-26T17:25:48Z', + '2021-03-26T17:25:50Z', + '2021-03-26T17:25:52Z', + '2021-03-26T17:25:54Z', + '2021-03-26T17:25:56Z', + '2021-03-26T17:25:59Z', + '2021-03-26T17:26:02Z', + '2021-03-26T17:26:08Z', + '2021-03-26T17:27:40Z', + '2021-03-26T17:28:27Z', + '2021-03-26T17:29:12Z', + '2021-03-26T17:29:47Z', + '2021-03-26T17:29:58Z', + '2021-03-26T17:30:01Z', + '2021-03-26T17:31:24Z', + '2021-03-26T17:36:04Z', + '2021-03-26T17:36:10Z', + '2021-03-26T17:36:13Z', + '2021-03-26T17:36:17Z', + '2021-03-26T17:36:22Z', + '2021-03-26T17:36:27Z', + '2021-03-26T17:36:29Z', + '2021-03-26T17:36:31Z', + '2021-03-26T17:36:33Z', + '2021-03-26T17:36:35Z', + '2021-03-26T17:36:37Z', + '2021-03-26T17:36:39Z', + '2021-03-26T17:36:42Z', + '2021-03-26T17:36:44Z', + '2021-03-26T17:36:46Z', + '2021-03-26T17:36:48Z', + '2021-03-26T17:36:50Z', + '2021-03-26T17:36:52Z', + '2021-03-26T17:36:55Z', + '2021-03-26T17:37:24Z', + '2021-03-26T17:37:26Z', + '2021-03-26T17:37:28Z', + '2021-03-26T17:37:30Z', + '2021-03-26T17:37:32Z', + '2021-03-26T17:37:34Z', + '2021-03-26T17:37:36Z', + '2021-03-26T17:37:38Z', + '2021-03-26T17:37:40Z', + '2021-03-26T17:37:42Z', + '2021-03-26T17:37:44Z', + '2021-03-26T17:37:46Z', + '2021-03-26T17:37:48Z', + '2021-03-26T17:37:52Z', + '2021-03-26T17:37:55Z', + '2021-03-26T17:37:57Z', + '2021-03-26T17:37:59Z', + '2021-03-26T17:38:01Z', + '2021-03-26T17:38:03Z', + '2021-03-26T17:38:05Z', + '2021-03-26T17:38:07Z', + '2021-03-26T17:38:09Z', + '2021-03-26T17:38:12Z', + '2021-03-26T17:38:15Z', + '2021-03-26T17:38:17Z', + '2021-03-26T17:38:19Z', + '2021-03-26T17:38:21Z', + '2021-03-26T17:38:23Z', + '2021-03-26T17:38:26Z', + '2021-03-26T17:38:28Z', + '2021-03-26T17:38:30Z', + '2021-03-26T17:38:32Z', + '2021-03-26T17:38:34Z', + '2021-03-26T17:38:36Z', + '2021-03-26T17:38:40Z', + '2021-03-26T17:38:40Z', + '2021-03-26T17:38:53Z', + '2021-03-26T17:38:56Z', + '2021-03-26T17:38:59Z', + '2021-03-26T17:39:02Z', + '2021-03-26T17:39:44Z', + '2021-03-26T17:39:51Z', + '2021-03-26T17:39:55Z', + '2021-03-26T17:39:59Z', + '2021-03-26T17:40:13Z', + '2021-03-26T17:40:40Z', + '2021-03-26T17:40:41Z', + '2021-03-26T17:40:43Z', + '2021-03-26T17:40:45Z', + '2021-03-26T17:40:47Z', + '2021-03-26T17:40:49Z', + '2021-03-26T17:40:53Z', + '2021-03-26T17:40:55Z', + '2021-03-26T17:40:57Z', + '2021-03-26T17:40:59Z', + '2021-03-26T17:41:01Z', + '2021-03-26T17:41:03Z', + '2021-03-26T17:41:05Z', + '2021-03-26T17:41:07Z', + '2021-03-26T17:41:09Z', + '2021-03-26T17:41:11Z', + '2021-03-26T17:41:13Z', + '2021-03-26T17:41:15Z', + '2021-03-26T17:41:17Z', + '2021-03-26T17:41:19Z', + '2021-03-26T17:41:21Z', + '2021-03-26T17:41:24Z', + '2021-03-26T17:41:27Z', + '2021-03-26T17:41:50Z', + '2021-03-26T17:41:52Z', + '2021-03-26T17:41:54Z', + '2021-03-26T17:41:56Z', + '2021-03-26T17:41:58Z', + '2021-03-26T17:42:00Z', + '2021-03-26T17:42:02Z', + '2021-03-26T17:42:04Z', + '2021-03-26T17:42:06Z', + '2021-03-26T17:42:09Z', + '2021-03-26T17:42:13Z', + '2021-03-26T17:42:16Z', + '2021-03-26T17:42:39Z', + '2021-03-26T17:42:50Z', + '2021-03-26T17:43:08Z', + '2021-03-26T17:43:19Z', + '2021-03-26T17:43:31Z', + '2021-03-26T17:43:35Z', + '2021-03-26T17:43:42Z', + '2021-03-26T17:43:54Z', + '2021-03-26T17:44:38Z', + '2021-03-26T17:45:05Z', + '2021-03-26T17:45:15Z', + '2021-03-26T17:45:19Z', + '2021-03-26T17:45:23Z', + '2021-03-26T17:45:27Z', + '2021-03-26T17:45:31Z', + '2021-03-26T17:45:39Z', + '2021-03-26T17:45:43Z', + '2021-03-26T17:45:45Z', + '2021-03-26T17:46:18Z', + '2021-03-26T17:46:29Z', + '2021-03-26T17:46:45Z', + '2021-03-26T17:46:49Z', + '2021-03-26T17:48:28Z', + '2021-03-26T17:48:32Z', + '2021-03-26T17:48:33Z', + '2021-03-26T17:48:35Z', + '2021-03-26T17:48:36Z', + '2021-03-26T17:49:13Z', + '2021-03-26T17:49:20Z', + '2021-03-26T17:49:22Z', + '2021-03-26T17:49:26Z', + '2021-03-26T17:49:42Z', + '2021-03-26T17:49:51Z', + '2021-03-26T17:50:08Z' + ], + heartRates: [] + }, + geometry: { + type: 'LineString', + coordinates: [ + [2.5850383, 49.2034361], + [2.5849947, 49.2033989], + [2.5849013, 49.2033595], + [2.5848447, 49.2033307], + [2.5847524, 49.2032611], + [2.584688, 49.2032268], + [2.5846406, 49.2031939], + [2.5845797, 49.2031519], + [2.5845202, 49.2031166], + [2.584465, 49.2030852], + [2.5844106, 49.2030384], + [2.5843751, 49.202998], + [2.5843474, 49.2029525], + [2.5842745, 49.2029509], + [2.5843922, 49.2030228], + [2.5846841, 49.2032072], + [2.5848834, 49.203349], + [2.5851149, 49.2034886], + [2.5853738, 49.2036311], + [2.5856217, 49.2037736], + [2.5858497, 49.2039036], + [2.5860598, 49.204048], + [2.5862561, 49.204183], + [2.586453, 49.2043379], + [2.5866579, 49.2044549], + [2.586836, 49.2045516], + [2.5870328, 49.2046626], + [2.5872469, 49.2047793], + [2.5874514, 49.2049011], + [2.5876586, 49.2050291], + [2.5878729, 49.2051618], + [2.5880319, 49.2052663], + [2.5881399, 49.2053435], + [2.5882533, 49.2054138], + [2.5883851, 49.2055013], + [2.5885505, 49.2056087], + [2.5887084, 49.2057235], + [2.5888673, 49.205832], + [2.5890504, 49.2059528], + [2.5892401, 49.2060699], + [2.5894074, 49.2061779], + [2.58952, 49.2062644], + [2.5895912, 49.206354], + [2.5896803, 49.2064967], + [2.5896803, 49.2064967], + [2.5897537, 49.2066731], + [2.5898833, 49.2068701], + [2.5900454, 49.2070625], + [2.59019, 49.2072434], + [2.590319, 49.2073987], + [2.5904269, 49.2075299], + [2.590502, 49.207639], + [2.590561, 49.2077287], + [2.5906214, 49.2078207], + [2.5906793, 49.2079096], + [2.5907317, 49.2079951], + [2.5909076, 49.2080334], + [2.5910665, 49.2079667], + [2.5912721, 49.2078919], + [2.5915026, 49.2078099], + [2.5917523, 49.2077236], + [2.5920198, 49.207632], + [2.592313, 49.2075608], + [2.5926198, 49.2075855], + [2.592979, 49.207645], + [2.5933761, 49.2076885], + [2.5937887, 49.2077416], + [2.5942196, 49.2077953], + [2.5946573, 49.2078323], + [2.5950537, 49.2078581], + [2.5954388, 49.2078882], + [2.5958121, 49.2079147], + [2.5961885, 49.2079482], + [2.596557, 49.2079797], + [2.5968892, 49.2080149], + [2.5971457, 49.2080466], + [2.5974154, 49.2080302], + [2.5975912, 49.2078923], + [2.5977837, 49.2077373], + [2.5979882, 49.2075893], + [2.5981405, 49.2074701], + [2.5982329, 49.2073832], + [2.5982894, 49.2072985], + [2.5984339, 49.2072877], + [2.5985743, 49.2073775], + [2.5987546, 49.2074978], + [2.5989857, 49.2076015], + [2.5991925, 49.2076889], + [2.5994314, 49.2077979], + [2.5995702, 49.2078565], + [2.5996814, 49.207783], + [2.5997514, 49.2077486], + [2.5998357, 49.2077336], + [2.599873, 49.2077858], + [2.599938, 49.2078446], + [2.5999976, 49.2078822], + [2.6001107, 49.2079336], + [2.6002127, 49.2079939], + [2.6001729, 49.207957], + [2.6000947, 49.207941], + [2.5999671, 49.2078728], + [2.5998199, 49.2078304], + [2.5997651, 49.2078662], + [2.5996499, 49.2078879], + [2.599514, 49.2078617], + [2.5993537, 49.2078054], + [2.5991532, 49.207716], + [2.5989339, 49.2076188], + [2.59872, 49.2075255], + [2.5985222, 49.207431], + [2.598289, 49.2073253], + [2.5981562, 49.2073487], + [2.5980408, 49.2074589], + [2.5978862, 49.2075987], + [2.5977265, 49.2077528], + [2.5975678, 49.2078806], + [2.5974149, 49.2080096], + [2.5973279, 49.208099], + [2.5971631, 49.2081063], + [2.5969375, 49.2080747], + [2.5966553, 49.2080392], + [2.596348, 49.2080056], + [2.5960325, 49.20797], + [2.5957293, 49.2079309], + [2.5954365, 49.2078992], + [2.5951454, 49.2078698], + [2.5948321, 49.2078385], + [2.5945073, 49.2078049], + [2.5942035, 49.2077734], + [2.5939676, 49.2077494], + [2.5937303, 49.2077288], + [2.5935074, 49.207713], + [2.5932402, 49.2076882], + [2.5929634, 49.2076597], + [2.5926995, 49.2076268], + [2.5924469, 49.2075944], + [2.592213, 49.2075815], + [2.5920116, 49.2076149], + [2.5918614, 49.2076663], + [2.5917445, 49.2077244], + [2.5916113, 49.2077847], + [2.5914916, 49.207835], + [2.5913316, 49.2078975], + [2.5911422, 49.2079695], + [2.590937, 49.2080434], + [2.5906823, 49.2080955], + [2.5905295, 49.2080077], + [2.5904225, 49.2078756], + [2.5903097, 49.2077358], + [2.5902106, 49.2076171], + [2.5901246, 49.2075297], + [2.5900564, 49.207451], + [2.5900609, 49.2074548], + [2.5900394, 49.207402], + [2.5900058, 49.2073561], + [2.5899487, 49.2073206], + [2.5898976, 49.2072873], + [2.5899731, 49.2072702], + [2.5900513, 49.2072776], + [2.5900903, 49.2073158], + [2.5901027, 49.2073605], + [2.5901371, 49.2074048], + [2.5899987, 49.2073256], + [2.5899088, 49.2072212], + [2.5897978, 49.2070606], + [2.5896965, 49.2069048], + [2.58959, 49.2067478], + [2.5894975, 49.2066242], + [2.5894279, 49.2065449], + [2.5893724, 49.2064522], + [2.5893154, 49.206313], + [2.589214, 49.2061441], + [2.5890238, 49.2059956], + [2.588804, 49.2058612], + [2.5885901, 49.2057294], + [2.5883669, 49.2055945], + [2.5881412, 49.2054603], + [2.5879168, 49.2053285], + [2.5876969, 49.2052004], + [2.5874776, 49.2050752], + [2.5872732, 49.2049502], + [2.587101, 49.2048447], + [2.586987, 49.2047847], + [2.5868374, 49.2046857], + [2.5867298, 49.2046126], + [2.5866702, 49.2045889], + [2.586576, 49.2045179], + [2.5864536, 49.2044299], + [2.5862998, 49.2043339], + [2.5861099, 49.2042156], + [2.5859172, 49.2040992], + [2.5856983, 49.2039886], + [2.5854849, 49.2038726], + [2.5853145, 49.2037639], + [2.5851409, 49.2036622], + [2.5850571, 49.2035792], + [2.5849869, 49.2035365], + [2.5849154, 49.2035401], + [2.5848625, 49.2035719], + [2.5849515, 49.2035696], + [2.5850295, 49.2035628], + [2.5849384, 49.2035867], + [2.5848655, 49.203615], + [2.5847906, 49.203615], + [2.5848721, 49.2036277], + [2.5848957, 49.2035854], + [2.5849625, 49.2035706], + [2.5848877, 49.2035871], + [2.5848289, 49.2036178], + [2.5847611, 49.2036509], + [2.5847079, 49.2036809], + [2.5848146, 49.2036374], + [2.584867, 49.2036078], + [2.5849169, 49.2035734], + [2.5848029, 49.2036246], + [2.5848539, 49.2035931], + [2.5849226, 49.2035966], + [2.5849618, 49.2035574], + [2.5849983, 49.2035487], + [2.5844296, 49.2032234], + [2.5848415, 49.2033493], + [2.5848918, 49.2035201], + [2.5849374, 49.2033433], + [2.5849713, 49.2032683], + [2.5849383, 49.2033582], + [2.5849734, 49.2034111], + [2.584993, 49.2034601], + [2.5850186, 49.2035217], + [2.5850502, 49.2035623], + [2.584979, 49.2035768], + [2.5849019, 49.2035891] + ] + } + } + ] + }, + Shared: true, + SelectDislike: [], + SelectLike: [], + dislike: 0, + like: 1, + center: [49.205528599999994, 2.5922435999999998], + geoFences: [ + [49.2034361, 2.5850383], + [49.2043379, 2.586453], + [49.2062644, 2.58952], + [49.207632, 2.5920198], + [49.2079482, 2.5961885], + [49.2078565, 2.5995702], + [49.2078806, 2.5975678], + [49.207713, 2.5935074], + [49.207451, 2.5900564], + [49.2054603, 2.5881412], + [49.2035792, 2.5850571], + [49.2035623, 2.5850502] + ], + description: '', + distance: 3.42, + images: [], + name: 'Aak', + time: '00:28:01', + type: 'Equitation - Dressage', + bounds: [ + [49.2029509, 2.5842745], + [49.2081063, 2.6002127] + ], + polyline: + 'sfjkFzzyv@@ADCBCBAHERGJEd@UVSDO@EJST[L?F???D?D?F?NDT@JCRCB?BDFLDNDLDHHFHH@DBHHRLLLTBPAJAD?HDJ@BFVD@DBLNBDDPBD@DHJFFHJHFJJDJF^QLDBD@D?BATQFEBCBEt@SBI@KBEHMFE@CD@H?HCFCFCBA^OBA^ADAPOJIDALWGQ?IGIEWFQBGDEFO@Q?EBQ?Q@C@[?GCEGMAM?U@M@E?EAYIe@CMAW?GDo@LY@EJUBMDKFQ@CJWDMBMH_@HQFEHKDs@@CJKDAF@D@@BBD@@HDDCJED?FCDA\\?PCRAJCRILEJAB@HF?@?BBDFHFLFJ?@@HFFFDHL@@?D@@@DDHBF@DBH@HFTHJFJBL@BJFB@FBADJJDBNJF@@GFCF@D@LAJA@GJGKM@CBEFGBCHELIBCFI@CBMFY?E@K@MJi@BG@EHKHI@CBEDKFIFOBCDIFGFGDGBCLGH?BEHKD?FIHM@EDI@APOFIB]TWJIGMBEPUFGBM@C?ANCLIFENILAB?D?PBFDJFDDPL@BFBB@BBRJFDFCD@LBPAJCJCJCNGJAF@DATGZSDEVUN]DEFY@?D@BABA@?@@@@BH?DBHBD@H@BBFCP????B?B?F?JAD@LDJ@FGZFDBNDF@BAN?JBN@J@P@?C??EAIKQAC?C?IBC@?@@@H@D@T@F?HBB?VDT@DAD?D@TMBI@EAECm@?ECQC?Y?W?CAE?O?ABGDA@A@E?G?K@I@C?M@M@??@??C@C?O?I@IRKNCHCBEBI@E@C?OAEA]CECGCCCQ@?JIFGRGB?BCJCHAXCD?N@B@HDHDD@H@H@B?J@HBBBB?@E?I?W?QAGG_@Js@?GAEFGRID@JBRDZAD@J?B@J?\\EHAR@RWF?DABAF@NQXAP?J@H@R@F?PCL@`@AB?J?N@D@VAF?B?LCD?XCDAJ?^CJAHAD@DAJMH?@ALAD?L?D?B?TDB@B@@AAJCJCD?D?D@FBNDL@DBDJJBBDN?F@???BE?@??@@HA@@HL?FBGJSLGJCZGB?R@H?LD@@B??AFEDCNQFINWDCVKTIDAVM\\[La@@ED[?EA]?O?CCE?E?A????AC?AEICEIYAKCMCKESIi@AGE[I_@?EE[Ie@Ge@C[GQGa@ESCMGi@CME[Ig@Gg@GYAKIg@AMGYG[AECAG?]RGJOPCB?@?DCB?DUVOJYLYHE@e@LIBUCg@S]YEGCGGWIc@ACCCK@@JOL]NC@]BUFKBOBIDGAAEIa@?ICOCCAYC_@?O?AEEDG?AA?CEI[EUGQI[Oa@CQ?WIa@KUCCAGKCC?I@A@CBOHC?CCCCEEGIIO@EFEJU?GDWFIBEBS@CHUDIDODI@EBKEOCM?W?U@G?OAA??KI?A?E?C@?EAAKKICAAACGBC?IAEAEAEGUBUBI?KCYCICEAEBQEKACAE@GHq@@EBUBQ?GBKD]AE?SAQAO?E?E?EB]?E@QDK?O@GEY?MCE?GDSBEHCFB@A@GAa@ACGOSYQICAOIOMKEGEIGIQCCKKKQOQGECAWCOJMEOEG@IIKMEKM[CQCKW_@CEGKECMUCCCA@CES?E@i@?Q?E@A?C?ECAEIACACCG??@A?I?@A?GAGCGAEBCAICACA?G?CECC?AACA?CD?@GACCCECCGIACAEEKEIGG@e@ICC@OHGB?@CAEGEQIa@?GG[AMAKAG?GGWAIEU@GWUMUQOO]EIQ[UYCGO[O[MSQUCEQUGIKOMSGUEGGGKSA@GBABC@CDEBA@GFABC@I@E@CB?DC?CCQMGKACCGSWMAI?EAO?GBMHAFADGT@HGFGFA@ABEHC?IMCGQQOEAAA?C?A@?@?@@BBN?D@B@R?F?J?D?DGF?BABETADA@ABIPAFEV?D?J@PBRBDBHP^DLBPBHJL@L?DBHRRDHHJ@FDH@DFPHHDI@IAIAY@KAGFEBAH@N@D@BBJBJBHBHBBBPP@BHTDHFNBBLHB@DBZLJ@LHXND?B@JNFHJRBB@DHPBFBNAD?B?PDVDX?D?NCDGFMFOFCBC@OFWJCBQBA@MBGBC@GFC@SNC@A@G@GFC?IFC??@EBA?CBGACDC@C?ULC?M@C@UJE@I@QDG@QHC@OFEBKFC@C@OJGHABAFAB?BKDBHBD?DA@?F@N@H?J?J?R?BBHABBF@BAJCFIHC@K?C@I@SFQDMLDf@MJUGQG]CE?QAUEE?a@IMEWM]MCA_@IMCIGYEK?MGQIUCE?W@K?Q?OC[CMASAGCE?M?E@EBWCQ@?D?NIDKFEHIPCFADJVADAB@LETGNEHCFAHAF?X?L@DJ\\@F?D@DHJBBRNBHAZ@F?L@J@NFNB@HFFJLR@B@DJZFP?D?H@F?@A@?@FD?ADKBI@EBG???????????@?A@EBAJUFIBEFIBEFQBK?EBM@OBKDM@SBS@G?C?QDMLAFA@APAVFFBFDHJBJB@?D?FABEFGFCBKDEBKDIJCHCDAJ?D?LDT?D@DDNDHFJBBFJHN@DBDBHBDDHHLDHDHHR@BDPBJBDBBBDBDDCBE@EPURUDENYPSLIRO@?@?PXLRNHTBHAF?B?@HFb@BJBBFPB@AF@^?VADOZMZGJSj@ABGDGJCBIFEH@F?F@FAHFHBDB?DJLJ@D@@@FBDJHJLPLBBBBHJZRF?TBTHF@ZPVJDDDBX`@BBLJHPVVB@TVARCDGVAr@Gn@YRUAWMKGWIUGICOC?A@@jBjATHXBD@\\@LLDBDD?@@ACE?????A??A?A???A?AAA?HBDDFHBJGLO\\EDO\\@F@NARE`@Hj@BJ@H@NHb@FRCHCFEHGFMVG@@LJp@BLBNFRLj@DLFNJh@@F\\HF?BHEHGFS^GHMTYf@CBUNID?ZGH?BILKJCBSLWPCBMPCBU\\_@TKJCBABMNCDOPC@WRKFA@EHOTYJE@CBa@XCBSRMZABQREBKB?DABAFe@HKJCBIJWLCBKXA@ABGDEBe@TC@KFKD?LADIDA@EFOPADEBIHSJMFE@A?EFGNADID[R[@E@C?Mv@CB[BE@QHWTCBGFSNCBC@KLIFADCFIFGDGBK@GFCHQHCBABEPIBCLMBWLA@]Pg@HAN?@EDA?KJGP@BCDEJc@LC@GDCBC?KLCBGLCRw@XGHCBE@IDUTC?IHA@AJABCDA?ELCFSHEDC?C@UFGBEBKHEJEDMJGDE@ONa@?DVEFEBC@GDC@?@KJQNKHEDGFMDEFIDMHEDMB', + dogFeatures: { + available: false, + free: false, + onLeash: false, + roadCrossing: false, + animalCrossbreeding: false, + animalCrossbreedingType: [], + difficulty: 0 + }, + gpsModified: false, + initialGpx: null, + isCorrectGpx: false + }); + + context = { userId }; + console.log('context', context); + }); + + /* + * + * Method : activity.delete : Vous devez être loggué. + * + */ + it('getPolylineCorrectGpsActivityGpxById : Vous devez être loggué.', function () { + // expect(function () { + getPolylineCorrectGpsActivityGpxById.call( + { + id: new Mongo.ObjectID(), + minPts: 1 + }, + (err) => { + assert.strictEqual( + err.error, + 'Activities.methods.getPolylineCorrectGpsActivityGpxById.notloggued' + ); + } + ); + /* }).to.throw( + 'Vous devez être loggué. [Activities.methods.getPolylineCorrectGpsActivityGpxById.notloggued]' + ); */ + }); + + it('getPolylineCorrectGpsActivityGpxById : return polyline', async function () { + console.log('idActivityGPX', idActivityGPX); + let result = await getPolylineCorrectGpsActivityGpxById._execute( + context, + { + id: idActivityGPX, + minPts: 1 + } + ); + + assert.strictEqual( + result, + 'o`ikHo{wNFHFPDJLPDJFHFJDJDJHHFDHD?NMWe@y@[g@[m@[s@[q@Ym@]i@Yg@_@e@Ui@Sc@Ue@Wk@Wg@Yi@Yi@U_@MUMUQ[U_@U_@U_@Wc@We@Ua@OUQM]Q??a@Mg@Ye@a@c@[_@YYUUMQKQKQKQIEc@J_@Ng@Nm@Pq@Pu@Ly@E}@KgA{@aSEiAEaAGs@Bu@Za@\\e@\\i@V]PQNK@[Q[Wc@So@Qg@Uo@K[NUDMBQKEIMGKIUKSDFBNLVF\\GHCVDZH^Pf@Rj@Ph@Rf@Rl@CXUV[\\]^Y^Y^QNA`@Fj@Dv@D|@F~@Fz@Dx@Dx@D~@F~@D|@Bl@Bn@Bj@Bt@Dv@Dr@Fp@@n@Ef@K\\IVKXKVK^Md@Mf@Kr@P\\XTZTVRPPNJ??HBFDFJDHBMAOGGGAGGLZTP^T^R\\TXPNLPJZH`@TZd@Zj@Xh@Zj@Xl@Xj@Xj@Vj@Xh@T`@JTP\\NTBJLPPXR\\Td@Vd@Tj@Vj@T`@R`@NNFL?LEJ?Q@OEPEL?NAOFEBKCLEJELEHFSDKFIIVDIAMFG@Gf@^a@Ib@ILEQDIEICKEGECLAN' + ); + }); + }); +} diff --git a/tests/methods/animal.js b/tests/methods/animal.js new file mode 100644 index 0000000..dd23d77 --- /dev/null +++ b/tests/methods/animal.js @@ -0,0 +1,979 @@ +import assert from 'assert'; +import Pets from '../../imports/api/collections/Pets'; +import PetsActivities from '../../imports/api/collections/PetsActivities'; +import { expect } from 'chai'; +import '../../imports/api/methods/Animal'; +import { Meteor } from 'meteor/meteor'; +import { Random } from 'meteor/random'; +import { + animalactivitycreate, + animalactivitycreatefromgps, + animalactivitymodifiy, + animaladdavatar, + animaladdimage, + animalcreate, + animalmodify, + likeAnimalActivity, + searchAnimal, + unLikeAnimalActivity, + getMyOverallAnimals, + getAnimalActivitiesPerPage +} from '../../imports/api/methods/Animal'; + +import log from 'loglevel'; +import moment from 'moment'; + +if (Meteor.isServer) { + describe('Animal', () => { + describe('methods', async () => { + const userId = Random.id(); + await Meteor.users.insertAsync({ _id: userId }, (error, resul) => { + if (error) log.info('ERROR ', error); + }); + const context = { userId }; + let idPet; + let idPetActivity; + + await Pets.removeAsync({}); + + beforeEach(() => { + /* Id = Pets.insert({ + Owner: userId, + Name: "Phantom", + Type: "Chien", + isShare: true, + Birthday: "12/12/2020", + Weight: 20, + Height: 20, + }); */ + }); + /* + * + * Method : animalcreate : Vous devez être loggué. + * + */ + it('animalcreate : Vous devez être loggué.', () => { + expect(function () { + animalcreate.call({ + Name: 'Phantom', + Type: 'Chien', + isShare: true, + Birthday: '2010-12-04', + Weight: 15.5, + Height: 60 + }); + }).to.throw( + 'Vous devez être loggué. [Animals.methods.animalcreate.notloggued]' + ); + }); + + it('animalcreate : peut créer un animal', async () => { + idPet = animalcreate._execute(context, { + Name: 'Phantom', + Type: 'Chien', + isShare: true, + Birthday: '2010-12-04', + Weight: 15.5, + Height: 60 + }); + + let result = await Pets.findOneAsync({ _id: idPet }); + + assert.strictEqual(result.Name, 'Phantom'); + assert.strictEqual(result.Type, 'Chien'); + assert.strictEqual(result.isShare, true); + assert.strictEqual(result.Birthday, '2010-12-04'); + assert.strictEqual(result.Weight, 15.5); + assert.strictEqual(result.Height, 60); + }); + + /** + * + * Method: animal.modify + * + */ + + it('animalmodify : Vous devez être loggué.', () => { + expect(function () { + animalmodify.call({ + id: idPet, + Name: 'Phantom', + Type: 'Chien', + isShare: true, + Birthday: '2010-12-04', + Weight: 15.5, + Height: 60 + }); + }).to.throw( + 'Vous devez être loggué. [Animals.methods.animalmodify.notloggued]' + ); + }); + + it("animalmodify : Vous n'êtes pas le propriétiare", () => { + expect(function () { + animalmodify._execute( + { userId: Random.id() }, + { + id: idPet, + Name: 'Phantom', + Type: 'Chien', + isShare: true, + Birthday: '2010-12-04', + Weight: 15.5, + Height: 60 + } + ); + }).to.throw( + "Vous n'êtes pas le propriétiare [Animals.methods.animalmodify.unauthorized]" + ); + }); + + it('animalmodify : peut modifier un animal', async () => { + animalmodify._execute(context, { + id: idPet, + Name: 'Medoc', + Type: 'Cheval', + isShare: false, + Birthday: '2010-11-04', + Weight: 10.5, + Height: 90, + images: [] + }); + + let result = await Pets.findOneAsync({ _id: idPet }); + + assert.strictEqual(result.Name, 'Medoc'); + assert.strictEqual(result.Type, 'Cheval'); + assert.strictEqual(result.isShare, false); + assert.strictEqual(result.Birthday, '2010-11-04'); + assert.strictEqual(result.Weight, 10.5); + assert.strictEqual(result.Height, 90); + + // Faire les images + }); + + /** + * + * Method: animal.activitycreate + * + */ + + it('animalactivitycreate : Vous devez être loggué.', () => { + expect(function () { + animalactivitycreate.call({ + Id: idPet, + time: '01:10', + name: 'Essai', + description: 'Description', + dateActivity: '2020-03-01T08:10:00+01:00', + type: 'Cani-cross', + distance: 10, + Notes: 'Notes' + }); + }).to.throw( + 'Vous devez être loggué. [Animals.methods.animalactivitycreate.notloggued]' + ); + }); + + it('animal.activitycreate : peut créer activité animal', async () => { + idPetActivity = animalactivitycreate._execute(context, { + Id: idPet, + time: '01:10', + name: 'Essai', + description: 'Description', + dateActivity: '2020-03-01T08:10:00+01:00', + type: 'Cani-cross', + distance: 10, + Notes: 'Notes' + }); + + let result = await PetsActivities.findOneAsync({ _id: idPetActivity }); + assert.strictEqual(result.IDActivity, '-1'); + assert.strictEqual(result.description, 'Description'); + assert.strictEqual(result.ActivityName, 'Essai'); + assert.strictEqual(result.AnimalName, 'Medoc'); + // assert.strictEqual(result.AnimalOwner, userId); + assert.strictEqual(result.ActivityType, 'Cani-cross'); + assert.strictEqual( + moment(result.DateAct).utc().format(), + '2020-03-01T07:10:00Z' + ); + assert.strictEqual(result.TimeFCtotal, 4200); + assert.strictEqual(result.Distance, 10); + assert.strictEqual(result.Notes, 'Notes'); + assert.strictEqual(result.Id_GPX, null); + }); + + /** + * + * Method: animal.getAnimalActivitiesPerPage + * + */ + + it('animal.getAnimalActivitiesPerPage : Vous devez être loggué.', () => { + expect(function () { + getAnimalActivitiesPerPage.call({ page: 1 }); + }).to.throw( + 'Vous devez être loggué. [Animals.methods.getanimalactivitiesperpage.notloggued]' + ); + }); + + it('animal.getAnimalActivitiesPerPage : peut retirer la liste', () => { + for (let i = 0; i < 9; i++) { + idPetActivity = animalactivitycreate._execute(context, { + Id: idPet, + time: '01:10', + name: 'Essai', + description: 'Description', + dateActivity: '2020-03-01T08:10:00+01:00', + type: 'Cani-cross', + distance: 10, + Notes: 'Notes' + }); + } + animalactivitycreate._execute(context, { + Id: idPet, + time: '01:10', + name: 'Essai1', + description: 'Description1', + dateActivity: '2020-03-01T08:10:00+01:00', + type: 'Cani-cross', + distance: 10, + Notes: 'Notes1' + }); + let idPet1 = animalcreate._execute(context, { + Name: 'Phantom', + Type: 'Chien', + isShare: true, + Birthday: '2010-12-04', + Weight: 15.5, + Height: 60 + }); + + Pets.update( + { _id: idPet1 }, + { + $push: { + Shared: { + _id: userId + } + } + } + ); + animalactivitycreate._execute(context, { + Id: idPet1, + time: '01:12', + name: 'Essai2', + description: 'Description2', + dateActivity: '2020-03-01T08:10:00+01:00', + type: 'Cani-cross', + distance: 10, + Notes: 'Notes2' + }); + + let result = getAnimalActivitiesPerPage._execute(context, { page: 2 }); + + assert.strictEqual(result.length, 2); + assert.strictEqual(result[0].description, 'Description1'); + assert.strictEqual(result[0].ActivityName, 'Essai1'); + assert.strictEqual(result[0].AnimalName, 'Medoc'); + // assert.strictEqual(result.AnimalOwner, userId); + assert.strictEqual(result[0].ActivityType, 'Cani-cross'); + assert.strictEqual( + moment(result[0].DateAct).utc().format(), + '2020-03-01T07:10:00Z' + ); + assert.strictEqual(result[0].TimeFCtotal, 4200); + assert.strictEqual(result[0].Distance, 10); + assert.strictEqual(result[0].Notes, 'Notes1'); + assert.strictEqual(result[0].Id_GPX, null); + }); + + /** + * + * Method: animal.likeactivity + * + */ + + it('animal.likeactivity : Vous devez être loggué.', () => { + idPetActivity = animalactivitycreate._execute(context, { + Id: idPet, + time: '01:10', + name: 'Essai', + description: 'Description', + dateActivity: '2020-03-01T08:10:00+01:00', + type: 'Cani-cross', + distance: 10, + Notes: 'Notes' + }); + + expect(function () { + likeAnimalActivity.call({ idActivity: idPetActivity }); + }).to.throw( + 'Vous devez être loggué. [Animals.methods.likeAnimalActivity.notloggued]' + ); + }); + + it("animal.likeactivity : Vous n'êtes pas le propriétiare", () => { + idPetActivity = animalactivitycreate._execute(context, { + Id: idPet, + time: '01:10', + name: 'Essai', + description: 'Description', + dateActivity: '2020-03-01T08:10:00+01:00', + type: 'Cani-cross', + distance: 10, + Notes: 'Notes' + }); + + expect(function () { + likeAnimalActivity._execute( + { userId: Random.id() }, + { idActivity: idPetActivity } + ); + }).to.throw( + "Vous n'êtes pas le propriétiare [Animals.methods.likeAnimalActivity.unauthorized]" + ); + }); + + it('animal.likeactivity : Vous êtes le propriétaire', () => { + idPetActivity = animalactivitycreate._execute(context, { + Id: idPet, + time: '01:10', + name: 'Essai', + description: 'Description', + dateActivity: '2020-03-01T08:10:00+01:00', + type: 'Cani-cross', + distance: 10, + Notes: 'Notes' + }); + + expect(function () { + likeAnimalActivity._execute(context, { idActivity: idPetActivity }); + }).to.throw( + 'Vous êtes le propriétaire [Animals.methods.likeAnimalActivity.unauthorized]' + ); + }); + + it('animal.likeactivity : peut aimer une activité animale', async () => { + idPetActivity = animalactivitycreate._execute(context, { + Id: idPet, + time: '01:10', + name: 'Essai', + description: 'Description', + dateActivity: '2020-03-01T08:10:00+01:00', + type: 'Cani-cross', + distance: 10, + Notes: 'Notes' + }); + const otherUserId = Random.id(); + await Pets.updateAsync( + { _id: idPet }, + { + $push: { + Shared: { + _id: otherUserId, + weightTrackingRight: '' + } + } + } + ); + + likeAnimalActivity._execute( + { userId: otherUserId }, + { idActivity: idPetActivity } + ); + + expect(PetsActivities.findOne({ _id: idPetActivity }).like).to.equal(1); + expect( + PetsActivities.findOne({ _id: idPetActivity }).likeMember[0] + ).to.equal(otherUserId); + }); + + /** + * + * Method: animal.unlikeactivity + * + */ + + it('animal.likeactivity : Vous devez être loggué.', () => { + idPetActivity = animalactivitycreate._execute(context, { + Id: idPet, + time: '01:10', + name: 'Essai', + description: 'Description', + dateActivity: '2020-03-01T08:10:00+01:00', + type: 'Cani-cross', + distance: 10, + Notes: 'Notes' + }); + + expect(function () { + unLikeAnimalActivity.call({ idActivity: idPetActivity }); + }).to.throw( + 'Vous devez être loggué. [Animals.methods.unLikeAnimalActivity.notloggued]' + ); + }); + + it("animal.unLikeAnimalActivity : Vous n'êtes pas le propriétiare", () => { + idPetActivity = animalactivitycreate._execute(context, { + Id: idPet, + time: '01:10', + name: 'Essai', + description: 'Description', + dateActivity: '2020-03-01T08:10:00+01:00', + type: 'Cani-cross', + distance: 10, + Notes: 'Notes' + }); + + expect(function () { + unLikeAnimalActivity._execute( + { userId: Random.id() }, + { idActivity: idPetActivity } + ); + }).to.throw( + "Vous n'êtes pas le propriétiare [Animals.methods.unLikeAnimalActivity.unauthorized]" + ); + }); + + it('animal.unLikeAnimalActivity : Vous êtes le propriétaire', () => { + idPetActivity = animalactivitycreate._execute(context, { + Id: idPet, + time: '01:10', + name: 'Essai', + description: 'Description', + dateActivity: '2020-03-01T08:10:00+01:00', + type: 'Cani-cross', + distance: 10, + Notes: 'Notes' + }); + + expect(function () { + unLikeAnimalActivity._execute(context, { idActivity: idPetActivity }); + }).to.throw( + 'Vous êtes le propriétaire [Animals.methods.unLikeAnimalActivity.unauthorized]' + ); + }); + + it('animal.unLikeAnimalActivity : ne plus aimer une activité animale', async () => { + idPetActivity = animalactivitycreate._execute(context, { + Id: idPet, + time: '01:10', + name: 'Essai', + description: 'Description', + dateActivity: '2020-03-01T08:10:00+01:00', + type: 'Cani-cross', + distance: 10, + Notes: 'Notes' + }); + const otherUserId = Random.id(); + await Pets.updateAsync( + { _id: idPet }, + { + $push: { + Shared: { + _id: otherUserId, + weightTrackingRight: '' + } + } + } + ); + + likeAnimalActivity._execute( + { userId: otherUserId }, + { idActivity: idPetActivity } + ); + + unLikeAnimalActivity._execute( + { userId: otherUserId }, + { idActivity: idPetActivity } + ); + + expect(PetsActivities.findOne({ _id: idPetActivity }).like).to.equal(0); + expect( + PetsActivities.findOne({ _id: idPetActivity }).likeMember.length + ).to.equal(0); + }); + + /** + * + * Method: animalactivitycreatefromgps + * + */ + + it('animalactivitycreatefromgps : Vous devez être loggué.', () => { + expect(function () { + animalactivitycreatefromgps.call({ + Id: idPet, + time: '01:10', + name: 'Essai', + description: 'Description', + dateActivity: '2020-03-01T08:10:00+01:00', + type: 'Cani-cross', + distance: 10, + Notes: 'Notes', + geojson: [ + { + type: 'dd', + properties: { + time: ' zzzz', + coordinateProperties: { times: ['AA'], heart: [1, 2] } + }, + geometry: { + type: 'Line', + coordinates: [ + [3, 5], + [6, 8] + ] + } + } + ] + }); + }).to.throw( + 'Vous devez être loggué. [Animals.methods.animalactivitycreatefromgps.notloggued]' + ); + }); + + /** + * + * Method: animalactivitymodify + * + */ + + it('animalactivitymodify : Vous devez être loggué.', () => { + expect(function () { + animalactivitymodifiy.call({ + Id: idPetActivity, + IDAnimal: idPet, + time: '02:20', + name: 'Essai Bis', + description: 'Description Bis', + dateActivity: '2021-05-01T10:08:00+01:00', + type: 'Course à pied', + distance: 32.1, + Notes: 'Notes Bis' + }); + }).to.throw( + 'Vous devez être loggué. [Animals.methods.animalactivitymodifiy.notloggued]' + ); + }); + + it("animalactivitymodify : Vous n'êtes pas le propriétiare", () => { + expect(function () { + animalactivitymodifiy._execute( + { userId: Random.id() }, + { + Id: idPetActivity, + IDAnimal: idPet, + time: '02:20', + name: 'Essai Bis', + description: 'Description Bis', + dateActivity: '2021-05-01T10:08:00+01:00', + type: 'Course à pied', + distance: 32.1, + Notes: 'Notes Bis' + } + ); + }).to.throw( + "Vous n'êtes pas le propriétiare [Animals.methods.animalactivitymodifiy.unauthorized]" + ); + }); + + it('animalactivitymodify : peut modifier une activité animal sans images', async () => { + animalactivitymodifiy._execute(context, { + Id: idPetActivity, + IDAnimal: idPet, + time: '02:20', + name: 'Essai Bis', + description: 'Description Bis', + dateActivity: '2021-05-01T10:08:00+01:00', + type: 'Course à pied', + distance: 32.1, + Notes: 'Notes Bis' + }); + + let result = await PetsActivities.findOneAsync({ _id: idPetActivity }); + + assert.strictEqual(result.IDAnimal._str, idPet._str); + assert.strictEqual(result.description, 'Description Bis'); + assert.strictEqual(result.ActivityName, 'Essai Bis'); + assert.strictEqual(result.ActivityType, 'Course à pied'); + assert.strictEqual( + moment(result.DateAct).utc().format(), + '2021-05-01T09:08:00Z' + ); + assert.strictEqual(result.TimeFCtotal, 8400); + assert.strictEqual(result.Distance, 32.1); + assert.strictEqual(result.Notes, 'Notes Bis'); + + animalactivitymodifiy._execute(context, { + Id: idPetActivity, + IDAnimal: idPet, + time: '02:20:02', + name: 'Essai Bis', + description: 'Description Bis', + dateActivity: '2021-05-01T10:08:00+01:00', + type: 'Course à pied', + distance: 32.1, + Notes: 'Notes Bis' + }); + result = await PetsActivities.findOneAsync({ _id: idPetActivity }); + assert.strictEqual(result.TimeFCtotal, 8402); + }); + + // Faire modification avec images + + /* + * + * Method : animal.addimage + * + */ + + it('animaladdimage : Vous devez être loggué.', () => { + const file = { + asset_id: '123', + public_id: 'id_Public', + version: 1, + version_id: 'DEsf54fk', + signature: 'Sign1', + width: 1024, + height: 800, + format: 'png', + resource_type: 'image', + created_at: '2020-01-03T01:03:00', + tags: ['Essai', 'Re'], + bytes: 434455, + type: 'image', + etag: 'Test', + placeholder: true, + url: 'http://placeholder.com', + secure_url: 'https://placeholder.com', + original_filename: 'IMG_3435', + original_extension: 'png', + folder: 'folder' + }; + + let id = animalcreate._execute(context, { + Name: 'Essai', + Type: 'Cheval', + isShare: true, + Birthday: '2020-02-02', + Weight: 9, + Height: 10 + }); + + expect(function () { + animaladdimage.call({ + idAnimal: id, + file: file + }); + }).to.throw( + 'Vous devez être loggué. [Animals.methods.animaladdimage.notloggued]' + ); + }); + + it("animaladdimage : Vous n'êtes pas le propriétiare", () => { + const file = { + asset_id: '123', + public_id: 'id_Public', + version: 1, + version_id: 'DEsf54fk', + signature: 'Sign1', + width: 1024, + height: 800, + format: 'png', + resource_type: 'image', + created_at: '2020-01-03T01:03:00', + tags: ['Essai', 'Re'], + bytes: 434455, + type: 'image', + etag: 'Test', + placeholder: true, + url: 'http://placeholder.com', + secure_url: 'https://placeholder.com', + original_filename: 'IMG_3435', + original_extension: 'png', + folder: 'folder' + }; + + const id = animalcreate._execute(context, { + Name: 'Essai', + Type: 'Cheval', + isShare: true, + Birthday: '2020-02-02', + Weight: 9, + Height: 10 + }); + + log.info('---- ID ----- : ', id); + + expect(function () { + animaladdimage._execute( + { userId: Random.id() }, + { + idAnimal: id, + file: file + } + ); + }).to.throw( + "Vous n'êtes pas le propriétiare [Animals.methods.animaladdimage.unauthorized]" + ); + }); + it('animaladdimage : peut ajouter une image à un animal', async () => { + const file = { + asset_id: '123', + public_id: 'id_Public', + version: 1, + version_id: 'DEsf54fk', + signature: 'Sign1', + width: 1024, + height: 800, + format: 'png', + resource_type: 'image', + created_at: '2020-01-03T01:03:00', + tags: ['Essai', 'Re'], + bytes: 434455, + type: 'image', + etag: 'Test', + placeholder: true, + url: 'http://placeholder.com', + secure_url: 'https://placeholder.com', + original_filename: 'IMG_3435', + original_extension: 'png', + folder: 'folder' + }; + + let id = animalcreate._execute(context, { + Name: 'Essai', + Type: 'Cheval', + isShare: true, + Birthday: '2020-02-02', + Weight: 9, + Height: 10 + }); + + animaladdimage._execute(context, { + idAnimal: id, + file: file + }); + + assert.strictEqual( + await Pets.find({ 'images.asset_id': '123' }).countAsync(), + 1 + ); + }); + + /* + * + * Method : animaladdavatar + * + */ + + it('animaladdavatar : Vous devez être loggué.', () => { + const avatar = { + asset_id: '123', + public_id: 'id_Public', + version: 1, + version_id: 'DEsf54fk', + signature: 'Sign1', + width: 1024, + height: 800, + format: 'png', + resource_type: 'image', + created_at: '2020-01-03T01:03:00', + tags: ['Essai', 'Re'], + bytes: 434455, + type: 'image', + etag: 'Test', + placeholder: true, + url: 'http://placeholder.com', + secure_url: 'https://placeholder.com', + original_filename: 'IMG_3435', + original_extension: 'png', + folder: 'folder' + }; + + let id = animalcreate._execute(context, { + Name: 'Essai', + Type: 'Cheval', + isShare: true, + Birthday: '2020-02-02', + Weight: 9, + Height: 10 + }); + + expect(function () { + animaladdavatar.call({ + idAnimal: id, + avatar: avatar + }); + }).to.throw( + 'Vous devez être loggué. [Animals.methods.animaladdavatar.notloggued]' + ); + }); + + it("animaladdavatar : Vous n'êtes pas le propriétiare", () => { + const avatar = { + asset_id: '123', + public_id: 'id_Public', + version: 1, + version_id: 'DEsf54fk', + signature: 'Sign1', + width: 1024, + height: 800, + format: 'png', + resource_type: 'image', + created_at: '2020-01-03T01:03:00', + tags: ['Essai', 'Re'], + bytes: 434455, + type: 'image', + etag: 'Test', + placeholder: true, + url: 'http://placeholder.com', + secure_url: 'https://placeholder.com', + original_filename: 'IMG_3435', + original_extension: 'png', + folder: 'folder' + }; + + const id = animalcreate._execute(context, { + Name: 'Essai', + Type: 'Cheval', + isShare: true, + Birthday: '2020-02-02', + Weight: 9, + Height: 10 + }); + + expect(function () { + animaladdavatar._execute( + { userId: Random.id() }, + { + idAnimal: id, + avatar: avatar + } + ); + }).to.throw( + "Vous n'êtes pas le propriétiare [Animals.methods.animaladdavatar.unauthorized]" + ); + }); + it('animaladdavatar : peut ajouter une image à un animal', async () => { + const avatar = { + asset_id: '123', + public_id: 'id_Public', + version: 1, + version_id: 'DEsf54fk', + signature: 'Sign1', + width: 1024, + height: 800, + format: 'png', + resource_type: 'image', + created_at: '2020-01-03T01:03:00', + tags: ['Essai', 'Re'], + bytes: 434455, + type: 'image', + etag: 'Test', + placeholder: true, + url: 'http://placeholder.com', + secure_url: 'https://placeholder.com', + original_filename: 'IMG_3435', + original_extension: 'png', + folder: 'folder' + }; + + let id = animalcreate._execute(context, { + Name: 'Essai', + Type: 'Cheval', + isShare: true, + Birthday: '2020-02-02', + Weight: 9, + Height: 10 + }); + + animaladdavatar._execute(context, { + idAnimal: id, + avatar: avatar + }); + + assert.strictEqual( + await Pets.find({ 'avatar.asset_id': '123' }).countAsync(), + 1 + ); + }); + + /* + * + * Method : searchAnimal + * + */ + + it('searchAnimal : Vous devez être loggué.', () => { + expect(function () { + searchAnimal.call({ + pattern: 'E' + }); + }).to.throw( + 'Vous devez être loggué. [Animals.methods.searchAnimal.notloggued]' + ); + }); + + it('searchAnimal : Recherche', async function () { + let id = animalcreate._execute( + { userId: Random.id() }, + { + Name: 'Essai', + Type: 'Cheval', + isShare: true, + Birthday: '2020-02-02', + Weight: 9, + Height: 10 + } + ); + + let result = await searchAnimal._execute(context, { + pattern: 'E' + }); + + assert.strictEqual(result.length, 1); + }); + + /* + * + * Method : getMyOverallAnimals + * + */ + + it('getMyOverallAnimals : Vous devez être loggué.', () => { + expect(function () { + getMyOverallAnimals + .call({ format: 'select' }) + .to.throw( + 'Vous devez être loggué. [Animals.methods.getMyOverallAnimals.notloggued]' + ); + }); + }); + + it('getMyOverallAnimals : Number of Animals', async function () { + let id = animalcreate._execute( + { userId: Random.id() }, + { + Name: 'Essai', + Type: 'Cheval', + isShare: true, + Birthday: '2020-02-02', + Weight: 9, + Height: 10 + } + ); + + let result = await getMyOverallAnimals._execute(context, { + format: 'select' + }); + + assert.equal(result[6].text, 'Medoc'); + assert.strictEqual(result.length, 8); + }); + }); + }); +} diff --git a/tests/methods/comments.js b/tests/methods/comments.js new file mode 100644 index 0000000..52dcd37 --- /dev/null +++ b/tests/methods/comments.js @@ -0,0 +1,264 @@ +import assert from 'assert'; +import MarkerComments from '../../imports/api/collections/MarkerComments'; +import Markers from '../../imports/api/collections/Markers'; +import { Meteor } from 'meteor/meteor'; +import { expect } from 'chai'; +import log from 'loglevel'; +import '../../imports/api/methods/Comments'; +import { commentadd, commentdelete } from '../../imports/api/methods/Comments'; +import { Random } from 'meteor/random'; + +if (Meteor.isServer) { + (async () => { + await MarkerComments.removeAsync({}); + })(); + (async () => { + await Markers.removeAsync({}); + })(); +} + +if (Meteor.isServer) { + describe('Comments', function () { + describe('methods not loggued', function () { + it('commentadd : peut ajouter un commentaire', async function () { + const userId = Random.id(); + + let idMarker = await Markers.insertAsync({ + position: [1, 2], + OwnerId: userId, + Type: 'Type', + icon: 'icon.png', + description: 'Descr', + title: 'Titre', + like: 1, + dislike: 0, + SelectLike: [userId], + SelectDislike: [] + }); + + // expect(function () { + commentadd.call( + { + text: 'Good site', + date: new Date('2020-01-03T23:43:04+02:00'), + IdMarker: idMarker + }, + (err) => { + expect(err.error).to.equal('Comments.methods.commentadd.notlogged'); + } + ); + /* }).to.throw( + 'Vous devez être loggué. [Comments.methods.commentadd.notlogged]' + ); */ + + /* assert.strictEqual( + MarkerComments.find({ IdMarker: idMarker }).count(), + 1 + ); + let result = MarkerComments.find({ + IdMarker: idMarker, + }).fetch()[0]; + + assert.strictEqual(result.text, "Good site"); + + assert.strictEqual(result.IdMarker._str, idMarker._str); + assert.strictEqual(result.IdOwner, Meteor.userId()); + assert.strictEqual(result.ownerFirstName, "Stéphane"); */ + }); + + it('sase.commentdelete : peut effacer un commentaire (Not Loggued', async function () { + const userId = await Accounts.createUserAsync({ + username: 'Comment1', + email: 'ste11.monnier@gmail.com', + password: 'EEEE', + profile: { + firstname: 'Stéphane', + lastname: 'Monnier' + } + }); + const context = { userId }; + //log.info("USERID : ", Meteor.userId()); + let idMarker = await Markers.insertAsync({ + position: [1, 2], + OwnerId: userId, + Type: 'Type', + icon: 'icon.png', + description: 'Descr', + title: 'Titre', + like: 1, + dislike: 0, + SelectLike: ['id'], + SelectDislike: [] + }); + + let idComment = await commentadd._execute( + context, + + { + text: 'Good site', + date: new Date('2020-01-03T23:43:04+02:00'), + IdMarker: idMarker + } + ); + // expect(function () { + commentdelete.call({ id: idComment }, (err) => { + expect(err.error).to.equal( + 'Comments.methods.commentdelete.notlogged' + ); + }); + /* }).to.throw( + 'Vous devez être loggué. [Comments.methods.commentdelete.notlogged]' + ); */ + }); + + it('sase.commentdelete : peut effacer un commentaire (Not Owner', async function () { + const userId = await Accounts.createUserAsync({ + username: 'Comment11', + email: 'ste111.monnier@gmail.com', + password: 'EEEE', + profile: { + firstname: 'Stéphane', + lastname: 'Monnier' + } + }); + const context = { userId }; + //log.info("USERID : ", Meteor.userId()); + let idMarker = await Markers.insertAsync({ + position: [1, 2], + OwnerId: userId, + Type: 'Type', + icon: 'icon.png', + description: 'Descr', + title: 'Titre', + like: 1, + dislike: 0, + SelectLike: ['id'], + SelectDislike: [] + }); + + let idComment = await commentadd._execute( + context, + + { + text: 'Good site', + date: new Date('2020-01-03T23:43:04+02:00'), + IdMarker: idMarker + } + ); + // expect(function () { + commentdelete._execute( + { userId: Random.id() }, + { id: idComment }, + (err) => { + expect(err.error).to.equal( + 'Comments.methods.commentdelete.unauthorized' + ); + } + ); + /* }).to.throw( + "Vous n'êtes pas le propriétiare [Comments.methods.commentdelete.unauthorized]" + ); */ + }); + }); + //const userId = Random.id(); + + /* + + */ + }); + + describe('methods loggued', () => { + it('sase.commentadd : peut ajouter un commentaire', async function () { + const userId = await Accounts.createUserAsync({ + username: 'Comment', + email: 'ste1.monnier@gmail.com', + password: 'EEEE', + profile: { + firstname: 'Stéphane', + lastname: 'Monnier' + } + }); + const context = { userId }; + //log.info("USERID : ", Meteor.userId()); + let idMarker = await Markers.insertAsync({ + position: [1, 2], + OwnerId: userId, + Type: 'Type', + icon: 'icon.png', + description: 'Descr', + title: 'Titre', + like: 1, + dislike: 0, + SelectLike: ['id'], + SelectDislike: [] + }); + + await commentadd._execute( + context, + + { + text: 'Good site', + date: new Date('2020-01-03T23:43:04+02:00'), + IdMarker: idMarker + } + ); + + assert.strictEqual( + await MarkerComments.find({ IdMarker: idMarker }).countAsync(), + 1 + ); + let result = await MarkerComments.findOneAsync({ + IdMarker: idMarker + }); + + assert.strictEqual(result.text, 'Good site'); + + assert.strictEqual(result.IdMarker._str, idMarker._str); + assert.strictEqual(result.IdOwner, userId); + assert.strictEqual(result.ownerFirstName, 'Stéphane'); + }); + + it('sase.commentdelete : peut effacer un commentaire ', async function () { + const userId = await Accounts.createUserAsync({ + username: 'Comment113', + email: 'ste1113.monnier@gmail.com', + password: 'EEEE', + profile: { + firstname: 'Stéphane', + lastname: 'Monnier' + } + }); + const context = { userId }; + //log.info("USERID : ", Meteor.userId()); + let idMarker = await Markers.insertAsync({ + position: [1, 2], + OwnerId: userId, + Type: 'Type', + icon: 'icon.png', + description: 'Descr', + title: 'Titre', + like: 1, + dislike: 0, + SelectLike: ['id'], + SelectDislike: [] + }); + + let idComment = await commentadd._execute( + context, + + { + text: 'Good site', + date: new Date('2020-01-03T23:43:04+02:00'), + IdMarker: idMarker + } + ); + + await commentdelete._execute(context, { id: idComment }); + + assert.strictEqual( + await MarkerComments.find({ _id: idComment }).countAsync(), + 0 + ); + }); + }); +} diff --git a/tests/methods/connect.js b/tests/methods/connect.js new file mode 100644 index 0000000..266c3e2 --- /dev/null +++ b/tests/methods/connect.js @@ -0,0 +1,304 @@ +import { Meteor } from 'meteor/meteor'; +import { Random } from 'meteor/random'; +import { expect } from 'chai'; +import { + getMarkerType, + getSettings, + pushFcmToken, + pushVersions, + setSettings +} from '../../imports/api/methods/Connect'; +import markerType from '../../imports/api/collections/markerType'; +import log from 'loglevel'; + +if (Meteor.isServer) { + describe('Connect', async function () { + let userId = Random.id(); + await Meteor.users.insertAsync({ _id: userId }, (error, resul) => { + if (error) log.info('ERROR ', error); + }); + beforeEach(() => {}); + + /* + * + * Method : utils.pushversions : Vous devez être loggué. + * + */ + it('utils.pushversions : Vous devez être loggué.', function () { + // expect(function () { + pushVersions.call( + { + webVersion: '2', + mobileVersion: '4', + viewPortWidth: 4 + }, + (err) => { + expect(err.error).to.equal('Utils.methods.pushVersions.notloggued'); + } + ); + /* }).to.throw( + 'Vous devez être loggué. [Utils.methods.pushVersions.notloggued]' + ); */ + }); + + /* + * + * Method : utils.pushversions : Envoi versions + * + */ + it('utils.pushversions : Envoi versions', async function () { + // let userId = Random.id(); + const context = { userId }; + await pushVersions._execute(context, { + webVersion: '2', + mobileVersion: '4', + viewPortWidth: 4 + }); + + const result = await Meteor.users.findOneAsync({ _id: userId }); + + expect(result.versions[result.versions.length - 1].webVersion).to.equal( + '2' + ); + expect( + result.versions[result.versions.length - 1].mobileVersion + ).to.equal('4'); + expect( + result.versions[result.versions.length - 1].viewPortWidth + ).to.equal(4); + }); + + /* + * + * Method : utils.pushFcmToken : Vous devez être loggué. + * + */ + it('utils.pushFcmToken : Vous devez être loggué.', function () { + // expect(function () { + pushFcmToken.call({ token: 'ddddddd' }, (err) => { + expect(err.error).to.equal('Utils.methods.pushFcmToken.notloggued'); + + /* }).to.throw( + 'Vous devez être loggué. [Utils.methods.pushFcmToken.notloggued]' + ); */ + }); + }); + + /* + * + * Method : utils.pushFcmToken : Envoi token + * + */ + it('utils.pushFcmToken : Envoi token', async function () { + // let userId = Random.id(); + const context = { userId }; + await pushFcmToken._execute(context, { + token: 'tttt' + }); + + const result = Meteor.users.findOne({ _id: userId }); + + expect(result.fcmToken.token).to.equal('tttt'); + }); + + /* + * + * Method : utils.setSettings : Vous devez être loggué. + * + */ + it('utils.setSettings : Vous devez être loggué.', function () { + // expect(function () { + setSettings.call( + { + settings: { + language: 'fr', + displayOnBoarding: true, + displayModals: { + warningOffline: false + }, + visibleMarkersOnMap: [ + { id: 0, visible: true }, + { id: 1, visible: true }, + { id: 2, visible: true }, + { id: 3, visible: true }, + { id: 4, visible: true }, + { id: 5, visible: true } + ], + mapFilter: { + activityFilterOnMap: true, + distanceMax: 100, + distanceMin: 0 + }, + activitiesListFilter: { + isMapVisible: true, + isPhotosVisible: true, + isDetailsVisible: true, + distanceMax: 100, + distanceMin: 0, + activityTypeNotSelected: ['Balade'] + }, + activitiesAnimalsListFilter: { + isMapVisible: true, + isPhotosVisible: true, + isDetailsVisible: true, + distanceMax: 100, + distanceMin: 0, + activityTypeNotSelected: [] + } + } + }, + (err) => { + expect(err.error).to.equal('Utils.methods.setSettings.notloggued'); + } + ); + /* }).to.throw( + 'Vous devez être loggué. [Utils.methods.setSettings.notloggued]' + ); */ + }); + + /* + * + * Method : utils.setSettings : Set paramètres + * + */ + it('utils.setSettings : Set paramètres', async function () { + // let userId = Random.id(); + const context = { userId }; + await setSettings._execute(context, { + settings: { + language: 'fr', + displayOnBoarding: true, + displayModals: { + warningOffline: false + }, + visibleMarkersOnMap: [ + { id: 0, visible: true }, + { id: 1, visible: true }, + { id: 2, visible: true }, + { id: 3, visible: true }, + { id: 4, visible: true }, + { id: 5, visible: true } + ], + mapFilter: { + activityFilterOnMap: true, + distanceMax: 100, + distanceMin: 0 + }, + activitiesListFilter: { + isMapVisible: true, + isPhotosVisible: true, + isDetailsVisible: true, + distanceMax: 100, + distanceMin: 0, + activityTypeNotSelected: ['Balade'] + }, + activitiesAnimalsListFilter: { + isMapVisible: true, + isPhotosVisible: true, + isDetailsVisible: true, + distanceMax: 100, + distanceMin: 0, + activityTypeNotSelected: [] + } + } + }); + expect( + (await Meteor.users.findOneAsync({ _id: userId })).settings + .displayModals.warningOffline + ).to.equal(false); + }); + + /* + * + * Method : utils.getSettings : Vous devez être loggué. + * + */ + it('utils.getSettings : Vous devez être loggué.', function () { + getSettings.call({}, (error, result) => { + expect(result.length).to.equal(0); + }); + }); + + /* + * + * Method : utils.getSettings : Get paramètres + * + */ + it('utils.getSettings : Get paramètres', function () { + // let userId = Random.id(); + const context = { userId }; + getSettings._execute(context, {}, (error, result) => { + expect(result.settings.displayModals.warningOffline).to.equal(false); + }); + }); + }); + + describe('getMarkerType', function () { + let userId = Random.id(); + const context = { userId }; + + /* + * + * Method : utils.getMarkerType : Vous devez être loggué. + * + */ + + it('utils.getMarkerType : Vous devez être loggué.', function () { + getMarkerType.call({}, (error, result) => { + expect(result.length).to.equal(0); + }); + }); + + /* + * + * Method : utils.getMarkerType : Get marker type + * + */ + it('utils.getMarkerType : Get marker type', async function () { + await markerType.insertAsync({ + markerType: [ + { + text: 'Sac à crottes', + icon: '/pets.png', + value: 0.0, + hasChildren: false + }, + { + text: 'Point de vue', + icon: '/photography.png', + value: 1.0, + hasChildren: false + }, + { + text: 'Poubelle', + icon: '/tours.png', + value: 2.0, + hasChildren: false + }, + { + text: "Point d'eau", + icon: '/default.png', + value: 3.0, + hasChildren: false + }, + { + text: 'Point de baignade', + icon: '/swimming-pools.png', + value: 4.0, + hasChildren: false + }, + { + text: "Poteau d'orientation", + icon: '/orientation.png', + value: 5.0, + hasChildren: false + } + ] + }); + getMarkerType._execute(context, {}, (error, result) => { + expect(result.markerType[0].icon).to.equal('/pets.png'); + expect(result.markerType[2].text).to.equal('Poubelle'); + }); + }); + }); +} diff --git a/tests/methods/markers.js b/tests/methods/markers.js new file mode 100644 index 0000000..26232a0 --- /dev/null +++ b/tests/methods/markers.js @@ -0,0 +1,754 @@ +import assert from 'assert'; +import MarkerComments from '../../imports/api/collections/MarkerComments'; +import Markers from '../../imports/api/collections/Markers'; +import { + markermodify, + markerdislike, + markerlike, + markeradd, + markerdelete, + markeraddimage +} from '../../imports/api/methods/Markers'; +import { Meteor } from 'meteor/meteor'; +import { expect } from 'chai'; +import markerType from '../../imports/api/collections/markerType'; +import { Random } from 'meteor/random'; +import log from 'loglevel'; + +if (Meteor.isServer) { + if (Meteor.isServer) { + (async () => { + await MarkerComments.removeAsync({}); + })(); + + // ... + } + + describe('Markers', () => { + describe('methods loggued', () => { + let userId, idMarker, context; + beforeEach(async () => { + userId = Random.id(); + idMarker = await Markers.insertAsync({ + position: [1, 2], + OwnerId: userId, + Type: 'Type', + icon: 'icon.png', + description: 'Descr', + title: 'Titre', + like: 1, + dislike: 0, + SelectLike: [userId], + SelectDislike: [] + }); + + context = { userId }; + }); + it('marker.dislike : Vous devez être loggué.', () => { + // expect(function () { + markerdislike.call( + { + Id: idMarker, + like: 2, + dislike: 0 + }, + (err) => { + assert.strictEqual( + err.error, + 'Markers.methods.markerdislike.notloggued' + ); + } + ); + /* }).to.throw( + 'Vous devez être loggué. [Markers.methods.markerdislike.notloggued]' + ); */ + }); + it("marker.dislike : n'aime pas un marqueur", async function () { + await markerdislike._execute(context, { + Id: idMarker, + like: 0, + dislike: 1 + }); + + assert.strictEqual( + (await Markers.findOneAsync({ _id: idMarker })).like, + 0 + ); + assert.strictEqual( + (await Markers.findOneAsync({ _id: idMarker })).dislike, + 1 + ); + assert.strictEqual( + (await Markers.findOneAsync({ _id: idMarker })).SelectLike.length, + 0 + ); + assert.strictEqual( + (await Markers.findOneAsync({ _id: idMarker })).SelectDislike.length, + 1 + ); + }); + + it('marker.like : Vous devez être loggué.', function () { + // expect(function () { + markerlike.call( + { + Id: idMarker, + like: 2, + dislike: 0 + }, + (err) => { + assert.strictEqual( + err.error, + 'Markers.methods.markerlike.notloggued' + ); + } + ); + /* }).to.throw( + 'Vous devez être loggué. [Markers.methods.markerlike.notloggued]' + ); */ + }); + + it('marker.like :aime un marqueur', async function () { + await markerlike._execute( + { userId: Random.id() }, + { + Id: idMarker, + like: 2, + dislike: 0 + } + ); + + assert.strictEqual( + (await Markers.findOneAsync({ _id: idMarker })).like, + 2 + ); + assert.strictEqual( + (await Markers.findOneAsync({ _id: idMarker })).dislike, + 0 + ); + assert.strictEqual( + (await Markers.findOneAsync({ _id: idMarker })).SelectLike.length, + 2 + ); + assert.strictEqual( + (await Markers.findOneAsync({ _id: idMarker })).SelectDislike.length, + 0 + ); + }); + + it('marker.modify : modifier un marqueur', async function () { + await markerType.insertAsync({ + markerType: [ + { + text: 'Sac à crottes', + icon: '/pets.png', + value: 0, + hasChildren: false + }, + { + text: 'Point de vue', + icon: '/photography.png', + value: 1, + hasChildren: false + }, + { + text: 'Poubelle', + icon: '/tours.png', + value: 2, + hasChildren: false + }, + { + text: "Point d'eau", + icon: '/default.png', + value: 3, + hasChildren: false + }, + { + text: 'Point de baignade', + icon: '/swimming-pools.png', + value: 4, + hasChildren: false + }, + { + text: "Poteau d'orientation", + icon: '/orientation.png', + value: 5, + hasChildren: false + }, + { + text: "Point d'intéret", + icon: '/interest.png', + value: 6, + hasChildren: false + }, + { + text: 'Plage', + icon: '/beach.png', + value: 7, + hasChildren: false + } + ] + }); + await markermodify._execute(context, { + _id: idMarker, + title: 'New title', + description: 'new', + Type: 3, + images: [] + }); + + assert.strictEqual( + (await Markers.findOneAsync({ _id: idMarker })).title, + 'New title' + ); + assert.strictEqual( + (await Markers.findOneAsync({ _id: idMarker })).description, + 'new' + ); + assert.strictEqual( + (await Markers.findOneAsync({ _id: idMarker })).Type, + 3 + ); + assert.strictEqual( + (await Markers.findOneAsync({ _id: idMarker })).icon, + '/default.png' + ); + + assert.strictEqual( + (await Markers.findOneAsync({ _id: idMarker })).images.length, + 0 + ); + }); + + it('marker.modify : modifier un marqueur plage autorisée', async function () { + await markermodify._execute(context, { + _id: idMarker, + title: 'Plage autorisée', + description: 'new', + Type: 7, + subType: '0', + images: [] + }); + + assert.strictEqual( + (await Markers.findOneAsync({ _id: idMarker })).title, + 'Plage autorisée' + ); + assert.strictEqual( + (await Markers.findOneAsync({ _id: idMarker })).description, + 'new' + ); + assert.strictEqual( + (await Markers.findOneAsync({ _id: idMarker })).Type, + 7 + ); + assert.strictEqual( + (await Markers.findOneAsync({ _id: idMarker })).subType, + '0' + ); + + assert.strictEqual( + (await Markers.findOneAsync({ _id: idMarker })).icon, + '/beach_allowed.png' + ); + + assert.strictEqual( + (await Markers.findOneAsync({ _id: idMarker })).images.length, + 0 + ); + }); + + it('marker.modify : modifier un marqueur plage sous condition', async function () { + await markermodify._execute(context, { + _id: idMarker, + title: 'Plage sous condition', + description: 'new', + Type: 7, + subType: '1', + images: [] + }); + + assert.strictEqual( + (await Markers.findOneAsync({ _id: idMarker })).title, + 'Plage sous condition' + ); + assert.strictEqual( + (await Markers.findOneAsync({ _id: idMarker })).description, + 'new' + ); + assert.strictEqual( + (await Markers.findOneAsync({ _id: idMarker })).Type, + 7 + ); + assert.strictEqual( + (await Markers.findOneAsync({ _id: idMarker })).subType, + '1' + ); + + assert.strictEqual( + (await Markers.findOneAsync({ _id: idMarker })).icon, + '/beach_underCondition.png' + ); + + assert.strictEqual( + (await Markers.findOneAsync({ _id: idMarker })).images.length, + 0 + ); + }); + + it('marker.modify : modifier un marqueur plage interdite', async function () { + await markermodify._execute(context, { + _id: idMarker, + title: 'plage interdite', + description: 'new', + Type: 7, + subType: '2', + images: [] + }); + + assert.strictEqual( + (await Markers.findOneAsync({ _id: idMarker })).title, + 'plage interdite' + ); + assert.strictEqual( + (await Markers.findOneAsync({ _id: idMarker })).description, + 'new' + ); + assert.strictEqual( + (await Markers.findOneAsync({ _id: idMarker })).Type, + 7 + ); + assert.strictEqual( + (await Markers.findOneAsync({ _id: idMarker })).subType, + '2' + ); + + assert.strictEqual( + (await Markers.findOneAsync({ _id: idMarker })).icon, + '/beach_notallowed.png' + ); + + assert.strictEqual( + (await Markers.findOneAsync({ _id: idMarker })).images.length, + 0 + ); + }); + + it('marker.modify : modifier un marqueur plage ne sais pas', async function () { + await markermodify._execute(context, { + _id: idMarker, + title: 'plage ne sais pas', + description: 'new', + Type: 7, + subType: '-1', + images: [] + }); + + assert.strictEqual( + (await Markers.findOneAsync({ _id: idMarker })).title, + 'plage ne sais pas' + ); + assert.strictEqual( + (await Markers.findOneAsync({ _id: idMarker })).description, + 'new' + ); + assert.strictEqual( + (await Markers.findOneAsync({ _id: idMarker })).Type, + 7 + ); + assert.strictEqual( + (await Markers.findOneAsync({ _id: idMarker })).subType, + '-1' + ); + + assert.strictEqual( + (await Markers.findOneAsync({ _id: idMarker })).icon, + '/beach.png' + ); + + assert.strictEqual( + (await Markers.findOneAsync({ _id: idMarker })).images.length, + 0 + ); + }); + }); + }); + describe('methods loggued', () => { + it('marker.modify : modifier un marqueur pas propriétaire', async function () { + const userId = Random.id(); + let idMarker = await Markers.insertAsync({ + position: [1, 2], + OwnerId: userId, + Type: 'Type', + icon: 'icon.png', + description: 'Descr', + title: 'Titre', + like: 1, + dislike: 0, + SelectLike: [userId], + SelectDislike: [] + }); + + const otherContext = { userId: Random.id() }; + // expect(function () { + markermodify._execute( + otherContext, + { + _id: idMarker, + title: 'New title', + description: 'new', + Type: "Point d'eau", + images: [] + }, + (err) => { + assert.strictEqual( + err.error, + 'Markers.methods.markermodify.unauthorized' + ); + } + ); + /* }).throw( + "Vous n'êtes pas le propriétiare [Markers.methods.markermodify.unauthorized]" + ); */ + }); + }); + describe('marker.add', () => { + let userId = Random.id(); + let context = { userId }; + const file = { + asset_id: '123', + public_id: 'id_Public', + version: 1, + version_id: 'DEsf54fk', + signature: 'Sign1', + width: 1024, + height: 800, + format: 'png', + resource_type: 'image', + created_at: '2020-01-03T01:03:00', + tags: ['Essai', 'Re'], + bytes: 434455, + type: 'image', + etag: 'Test', + placeholder: true, + url: 'http://placeholder.com', + secure_url: 'https://placeholder.com', + original_filename: 'IMG_3435', + original_extension: 'png', + folder: 'folder' + }; + let idMarker; + + it('markeradd: Ajouter un marqueur', async function () { + idMarker = await markeradd._execute(context, { + position: { lat: 49.3, lng: 2.6 }, + title: 'New title', + text: 'new', + icon: '/test.png', + Type: "Point d'eau" + }); + + expect((await Markers.findOneAsync({ _id: idMarker })).title).to.equal( + 'New title' + ); + expect( + (await Markers.findOneAsync({ _id: idMarker })).description + ).to.equal('new'); + expect((await Markers.findOneAsync({ _id: idMarker })).icon).to.equal( + '/test.png' + ); + expect((await Markers.findOneAsync({ _id: idMarker })).Type).to.equal( + "Point d'eau" + ); + expect( + (await Markers.findOneAsync({ _id: idMarker })).position.lat + ).to.equal(49.3); + expect( + (await Markers.findOneAsync({ _id: idMarker })).position.lng + ).to.equal(2.6); + }); + + it('markeradd: Ajouter un marqueur plage autorisée', async function () { + let idMark = await markeradd._execute(context, { + position: { lat: 49.3, lng: 2.6 }, + title: 'plage autorisée', + text: 'new', + icon: '/test.png', + Type: '7', + subType: '0' + }); + + expect((await Markers.findOneAsync({ _id: idMark })).title).to.equal( + 'plage autorisée' + ); + expect( + (await Markers.findOneAsync({ _id: idMark })).description + ).to.equal('new'); + expect((await Markers.findOneAsync({ _id: idMark })).icon).to.equal( + '/beach_allowed.png' + ); + expect((await Markers.findOneAsync({ _id: idMark })).Type).to.equal('7'); + expect( + (await Markers.findOneAsync({ _id: idMark })).position.lat + ).to.equal(49.3); + expect( + (await Markers.findOneAsync({ _id: idMark })).position.lng + ).to.equal(2.6); + + expect((await Markers.findOneAsync({ _id: idMark })).subType).to.equal( + '0' + ); + }); + + it('markeradd: Ajouter un marqueur plage sous condition', async function () { + let idMark = await markeradd._execute(context, { + position: { lat: 49.3, lng: 2.6 }, + title: 'plage sous condition', + text: 'new', + icon: '/test.png', + Type: '7', + subType: '1' + }); + + expect((await Markers.findOneAsync({ _id: idMark })).title).to.equal( + 'plage sous condition' + ); + expect( + (await Markers.findOneAsync({ _id: idMark })).description + ).to.equal('new'); + expect((await Markers.findOneAsync({ _id: idMark })).icon).to.equal( + '/beach_underCondition.png' + ); + expect((await Markers.findOneAsync({ _id: idMark })).Type).to.equal('7'); + expect( + (await Markers.findOneAsync({ _id: idMark })).position.lat + ).to.equal(49.3); + expect( + (await Markers.findOneAsync({ _id: idMark })).position.lng + ).to.equal(2.6); + + expect((await Markers.findOneAsync({ _id: idMark })).subType).to.equal( + '1' + ); + }); + + it('markeradd: Ajouter un marqueur plage non autorisée', async function () { + let idMark = await markeradd._execute(context, { + position: { lat: 49.3, lng: 2.6 }, + title: 'plage sous condition', + text: 'new', + icon: '/test.png', + Type: '7', + subType: '2' + }); + + expect((await Markers.findOneAsync({ _id: idMark })).title).to.equal( + 'plage sous condition' + ); + expect( + (await Markers.findOneAsync({ _id: idMark })).description + ).to.equal('new'); + expect((await Markers.findOneAsync({ _id: idMark })).icon).to.equal( + '/beach_notallowed.png' + ); + expect((await Markers.findOneAsync({ _id: idMark })).Type).to.equal('7'); + expect( + (await Markers.findOneAsync({ _id: idMark })).position.lat + ).to.equal(49.3); + expect( + (await Markers.findOneAsync({ _id: idMark })).position.lng + ).to.equal(2.6); + + expect((await Markers.findOneAsync({ _id: idMark })).subType).to.equal( + '2' + ); + }); + + it('markeradd: Ajouter un marqueur plage ne sais pas', async function () { + let idMark = await markeradd._execute(context, { + position: { lat: 49.3, lng: 2.6 }, + title: 'plage ne sais pas', + text: 'new', + icon: '/beach.png', + Type: '7', + subType: '-1' + }); + + expect((await Markers.findOneAsync({ _id: idMark })).title).to.equal( + 'plage ne sais pas' + ); + expect( + (await Markers.findOneAsync({ _id: idMark })).description + ).to.equal('new'); + expect((await Markers.findOneAsync({ _id: idMark })).icon).to.equal( + '/beach.png' + ); + expect((await Markers.findOneAsync({ _id: idMark })).Type).to.equal('7'); + expect( + (await Markers.findOneAsync({ _id: idMark })).position.lat + ).to.equal(49.3); + expect( + (await Markers.findOneAsync({ _id: idMark })).position.lng + ).to.equal(2.6); + + expect((await Markers.findOneAsync({ _id: idMark })).subType).to.equal( + '-1' + ); + }); + + it('marker.addimage : Vous devez être loggué.', function () { + // expect(function () { + markeraddimage.call( + { + idMarker, + file + }, + (err) => { + assert.strictEqual( + err.error, + 'Markers.methods.markeraddimage.notloggued' + ); + } + ); + /* }).to.throw( + 'Vous devez être loggué. [Markers.methods.markeraddimage.notloggued]' + ); */ + }); + + it("marker.addimage : Vous n'êtes pas le propriétiare", function () { + // expect(function () { + markeraddimage._execute( + { userId: Random.id() }, + { + idMarker, + file + }, + (err) => { + assert.strictEqual( + err.error, + 'Markers.methods.markeraddimage.unauthorized' + ); + } + ); + /* }).to.throw( + "Vous n'êtes pas le propriétiare [Markers.methods.markeraddimage.unauthorized]" + ); */ + }); + + it('marker.addimage : Effacement', async function () { + await markeraddimage._execute(context, { + idMarker, + file + }); + + expect( + await Markers.find({ 'images.asset_id': '123' }).countAsync() + ).to.equal(1); + }); + + it('marker.delete : Vous devez être loggué.', function () { + //expect(function () { + markerdelete.call( + { + Id: idMarker + }, + (err) => { + assert.strictEqual( + err.error, + 'Markers.methods.markerdelete.notloggued' + ); + } + ); + /* }).to.throw( + 'Vous devez être loggué. [Markers.methods.markerdelete.notloggued]' + ); */ + }); + + it("marker.delete : Vous n'êtes pas le propriétiare", function () { + // expect(function () { + markerdelete._execute( + { userId: Random.id() }, + { + Id: idMarker + }, + (err) => { + assert.strictEqual( + err.error, + 'Markers.methods.markerdelete.unauthorized' + ); + } + ); + /* }).to.throw( + "Vous n'êtes pas le propriétiare [Markers.methods.markerdelete.unauthorized]" + ); */ + }); + + it('marker.delete : Effacement', async function () { + await markerdelete._execute(context, { + Id: idMarker + }); + + expect(await Markers.find({ _id: idMarker }).countAsync()).to.equal(0); + }); + }); +} + +if (Meteor.isServer) { + describe('methods not loggued', () => { + it('marker.modify : Vous devez être loggué ', async function () { + //log.info("USERID : ", Meteor.userId()); + let idMarker = await Markers.insertAsync({ + position: [1, 2], + OwnerId: 'id', + Type: 'Type', + icon: 'icon.png', + description: 'Descr', + title: 'Titre', + like: 1, + dislike: 0, + SelectLike: ['id'], + SelectDislike: [] + }); + + //expect(function () { + markermodify.call( + { + _id: idMarker, + title: 'New title', + description: 'new', + Type: "Point d'eau", + images: [] + }, + (err) => { + assert.strictEqual( + err.error, + 'Markers.methods.markermodify.notloggued' + ); + } + ); + /* }).throw( + 'Vous devez être loggué. [Markers.methods.markermodify.notloggued]' + ); */ + }); + it('marker.add : Vous devez être loggué ', function () { + //log.info("USERID : ", Meteor.userId()); + + // expect(function () { + markeradd.call( + { + position: { lat: 49.3, lng: 2.6 }, + title: 'New title', + text: 'new', + icon: '/test.png', + Type: "Point d'eau" + }, + (err) => { + assert.strictEqual(err.error, 'Markers.methods.markeradd.notloggued'); + } + ); + /* }).throw( + 'Vous devez être loggué. [Markers.methods.markeradd.notloggued]' + ); */ + }); + }); +} diff --git a/tests/methods/petshared.js b/tests/methods/petshared.js new file mode 100644 index 0000000..0e783c9 --- /dev/null +++ b/tests/methods/petshared.js @@ -0,0 +1,71 @@ +import assert from 'assert'; +import Pets from '../../imports/api/collections/Pets'; +import Notifications from '../../imports/api/collections/Notifications'; +import '../../imports/api/methods/PetsShared'; +import { Meteor } from 'meteor/meteor'; +import { Random } from 'meteor/random'; + +if (Meteor.isServer) { + describe('PetsShared', function () { + describe('methods', function () { + let userId = ''; + let Id = ''; + + beforeEach(async function () { + await Notifications.removeAsync({}); + await Pets.removeAsync({}); + userId = await Meteor.users.insertAsync({ + createdAt: new Date('2021-01-03T21:58:07.579Z'), + services: { + password: { + bcrypt: + '$2b$10$wXUbSOaMm0uuPYDOaWpiOe.nLQU0wQO6hyNtc.bmJpC4CjI710P66' + } + }, + emails: [{ address: 'ste.monnnnnn@gmail.com', verified: false }], + profile: { firstname: 'AAA', lastname: 'AAA' } + }); + Id = await Pets.insertAsync({ + Owner: userId, + Name: 'Phantom', + Type: 'Chien', + isShare: true, + Birthday: '12/12/2020', + Weight: 20, + Height: 20 + }); + }); + + it('InsertNotifSharedAnimal : peut insérer une notifications', async function () { + // Find the internal implementation of the task method so we can + + // test it in isolation + + // const deleteActivity = Meteor.server.method_handlers["activity.delete"]; + + // Set up a fake method invocation that looks like what the method expects + + // Run the method with `this` set to the fake invocation + // let ActId = new Mongo.ObjectID(activityId); + await Meteor.call('InsertNotifSharedAnimal', Id); + + // Verify that the method does what we expected + const ResultPet = await Pets.findOneAsync( + { _id: Id }, + { fields: { Update: 1 } } + ); + assert.strictEqual( + await Notifications.find({ Type: 'Animal:Shared' }).countAsync(), + 1 + ); + assert.strictEqual( + await Notifications.find({ + Type: 'Animal:WaitingShared' + }).countAsync(), + 1 + ); + assert.strictEqual(ResultPet.Update, 1); + }); + }); + }); +} diff --git a/tests/methods/routes.js b/tests/methods/routes.js new file mode 100644 index 0000000..83b0ade --- /dev/null +++ b/tests/methods/routes.js @@ -0,0 +1,100 @@ +import ActivitiesGPX from '../../imports/api/collections/ActivitiesGPX'; +import { + activityshare, + activitycreate +} from '../../imports/api/methods/Activity'; + +import { routemodify } from '../../imports/api/methods/Route'; + +import { Meteor } from 'meteor/meteor'; +import { Random } from 'meteor/random'; +import { expect } from 'chai'; + +if (Meteor.isServer) { + describe('Route', function () { + let userId, context, activityGpxId, route; + beforeEach(async function () { + await ActivitiesGPX.removeAsync({}); + + userId = Random.id(); + context = { userId }; + + activityGpxId = await ActivitiesGPX.insertAsync({ + Shared: true, + Owner: userId, + name: 'Test', + type: [1, 2], + description: 'description', + time: '11:22:33', + distance: 5.6, + images: [] + }); + + route = { + id: activityGpxId, + name: 'Test', + type: [0, 1], + description: 'description', + time: '11:22:33', + distance: 5.6, + dogFeatures: { + available: false, + free: false, + onLeash: false, + roadCrossing: false, + animalCrossbreeding: false, + animalCrossbreedingType: [], + difficulty: 0.0 + } + }; + }); + + /* + * + * Method : route.modify : Vous devez être loggué. + * + */ + it('route.modify : Vous devez être loggué.', function () { + //expect(function () { + routemodify.call(route, (err) => { + expect(err.error).to.equal('Route.methods.routemodify.notloggued'); + }); + /* }).to.throw( + 'Vous devez être loggué. [Route.methods.routemodify.notloggued]' + ); */ + }); + /* + * + * Method : route.modify : Vous n'êtes pas le propriétiare + * + */ + it("route.modify : Vous n'êtes pas le propriétiare", function () { + const otherContext = { userId: Random.id() }; + // expect(function () { + routemodify._execute(otherContext, route, (err) => { + expect(err.error).to.equal('Route.methods.routemodify.unauthorized'); + }); + /* }).to.throw( + "Vous n'êtes pas le propriétiare [Route.methods.routemodify.unauthorized]" + ); */ + }); + + /* + * + * Method : route.modify : Modifier un parcours + * + */ + it('route.modify : Modifier un parcours', async function () { + await routemodify._execute(context, route); + + const result = await ActivitiesGPX.findOneAsync({ _id: activityGpxId }); + + expect(result.name).to.equal('Test'); + expect(result.type[0]).to.equal(0); + expect(result.type[1]).to.equal(1); + expect(result.description).to.equal('description'); + expect(result.time).to.equal('11:22:33'); + expect(result.distance).to.equal(5.6); + }); + }); +} diff --git a/tests/methods/traces.js b/tests/methods/traces.js new file mode 100644 index 0000000..23f5c66 --- /dev/null +++ b/tests/methods/traces.js @@ -0,0 +1,163 @@ +import { Meteor } from 'meteor/meteor'; +import { Random } from 'meteor/random'; + +import Traces from '../../imports/api/collections/traces'; +import ActivitiesGPX from '../../imports/api/collections/ActivitiesGPX'; +import { tracecreate, tracedelete } from '../../imports/api/methods/traces'; +import { expect, assert } from 'chai'; +import { trace } from 'console'; + +if (Meteor.isServer) { + let mongoGpxId; + let userId = Random.id(); + let context = { userId }; + let ActId; + describe('Traces', function () { + describe('methods', function () { + beforeEach(async function () { + (async () => { + await ActivitiesGPX.removeAsync({}); + })(); + (async () => { + await Traces.removeAsync({}); + })(); + + mongoGpxId = await ActivitiesGPX.insertAsync({ + name: 'Testing', + time: '01:02:02', + distance: 34.5, + type: 'Course à Pied' + }); + }); + + it('trace.create : Vous devez être loggué.', function () { + tracecreate.call({ Id: mongoGpxId }, (err) => { + assert.strictEqual( + err.error, + 'Traces.methods.tracecreate.notloggued' + ); + }); + }); + + it('trace.create : peut créer un parcours', async function () { + mongoGpxId = await ActivitiesGPX.insertAsync({ + name: 'Testing', + Owner: userId, + time: '01:02:02', + distance: 34.5, + type: 'Course à Pied' + }); + await tracecreate._execute(context, { Id: mongoGpxId }); + + assert.strictEqual( + await Traces.find({ idGpx: mongoGpxId }).countAsync(), + 1 + ); + }); + + it('trace.create : parcours déjà sauvegardé', async function () { + mongoGpxId = await ActivitiesGPX.insertAsync({ + name: 'Testing', + Owner: userId, + description: 'Desc', + images: [], + time: '01:02:02', + distance: 34.5, + type: 'Course à Pied' + }); + await tracecreate._execute(context, { Id: mongoGpxId }); + + tracecreate._execute(context, { Id: mongoGpxId }, (err) => { + assert.strictEqual( + err.error, + 'Traces.methods.tracecreate.alreadySaved' + ); + }); + + /* expect(async function () { + await tracecreate._execute(context, { Id: mongoGpxId }); + }).to.throw( + 'Le parcours a déjà été sauvegardé. [Traces.methods.tracecreate.alreadySaved]' + ); */ + }); + }); + + it('trace.delete : Vous devez être loggué.', async function () { + mongoGpxId = await ActivitiesGPX.insertAsync({ + name: 'Testing', + description: 'Desc', + images: [], + time: '01:02:02', + distance: 34.5, + type: 'Course à Pied' + }); + let idTrace = await tracecreate._execute(context, { + Id: mongoGpxId + }); + + tracedelete.call({ idTrace: idTrace }, (err) => { + assert.strictEqual(err.error, 'Traces.methods.tracedelete.notloggued'); + }); + /* console.log( + 'TEST', + assert.throw( + fn, + 'Vous devez être loggué. [Traces.methods.tracedelete.notloggued]' + ) + ); + assert.throw( + fn, + 'Vous devez être loggué. [Traces.methods.tracedelete.notloggued]' + ); */ + /* expect(async function () { + await tracedelete.callAsync({ idTrace: idTrace }); + }).to.throw( + 'Vous devez être loggué. [Traces.methods.tracedelete.notloggued]' + ); */ + }); + it('trace.delete : Vous n êtes pas le propriétiare.', async function () { + mongoGpxId = await ActivitiesGPX.insertAsync({ + name: 'Testing', + description: 'Desc', + images: [], + time: '01:02:02', + distance: 34.5, + type: 'Course à Pied' + }); + let idTrace = await tracecreate._execute(context, { Id: mongoGpxId }); + + // expect(function () { + tracedelete._execute( + { userId: Random.id }, + { idTrace: idTrace }, + (err) => { + assert.strictEqual( + err.error, + 'Traces.methods.tracedelete.unauthorized' + ); + } + ); + }); + /* }).to.throw( + "Vous n'êtes pas le propriétiare [Traces.methods.tracedelete.unauthorized]" + ); */ + + it('trace.delete : Effacement', async function () { + mongoGpxId = await ActivitiesGPX.insertAsync({ + name: 'Testing', + description: 'Desc', + images: [], + time: '01:02:02', + distance: 34.5, + type: 'Course à Pied' + }); + let idTrace = tracecreate._execute(context, { Id: mongoGpxId }); + + tracedelete._execute(context, { + idTrace + }); + + expect(await Traces.find({ idTrace }).countAsync()).to.equal(0); + }); + }); +} diff --git a/tests/methods/tracking.js b/tests/methods/tracking.js new file mode 100644 index 0000000..f6b950d --- /dev/null +++ b/tests/methods/tracking.js @@ -0,0 +1,231 @@ +import { Meteor } from 'meteor/meteor'; +import { Random } from 'meteor/random'; +import { expect } from 'chai'; +import { + pushAnimalWeight, + setWeightTrackingRight +} from '../../imports/api/methods/tracking'; +import { animalcreate } from '../../imports/api/methods/Animal'; +import Pets from '../../imports/api/collections/Pets'; +import log from 'loglevel'; + +if (Meteor.isServer) { + describe('pushAnimalWeight', function () { + let userId, context, idAnimal, userOtherId; + beforeEach(async function () { + userId = Random.id(); + userOtherId = Random.id(); + + context = { userId }; + await Meteor.users.insertAsync({ _id: userId }, (error, resul) => { + if (error) log.info('ERROR ', error); + }); + + await Meteor.users.insertAsync( + { + _id: userOtherId + }, + (error, resul) => { + if (error) log.info('ERROR ', error); + } + ); + + idAnimal = await animalcreate._execute(context, { + Name: 'Essai', + Type: 'Cheval', + isShare: true, + Birthday: '12/21/3022', + Weight: 20, + Height: 30 + }); + + await Pets.updateAsync( + { _id: idAnimal }, + { $set: { Shared: [{ _id: userOtherId, weightTrackingRight: '' }] } } + ); + + // InsertNotifSharedAnimal; + }); + + /* + * + * Method : tracking.pushAnimalWeight : Vous devez être loggué. + * + */ + it('tracking.pushAnimalWeight : Vous devez être loggué.', function () { + //expect(function () { + pushAnimalWeight.call( + { + id: idAnimal, + date: '12/12/2020T00:00:00Z', + weight: 4 + }, + (err) => { + expect(err.error).to.equal( + 'Tracking.methods.pushAnimalWeight.notloggued' + ); + } + ); + /* }).to.throw( + 'Vous devez être loggué. [Tracking.methods.pushAnimalWeight.notloggued]' + ); */ + }); + + /* + * + * Method : tracking.pushAnimalWeight : Vous devez être loggué. + * + */ + it("tracking.pushAnimalWeight : Vous n'êtes pas le propriétiare.", function () { + //expect(function () { + pushAnimalWeight._execute( + { userId: userOtherId }, + { + id: idAnimal, + date: '12/12/2020T00:00:00Z', + weight: 4 + }, + (err) => { + expect(err.error).to.equal( + 'Tracking.methods.pushAnimalWeight.unauthorized' + ); + } + ); + /* }).to.throw( + "Vous n'êtes pas authorisés [Tracking.methods.pushAnimalWeight.unauthorized]" + ); */ + }); + + /* + * + * Method : tracking.pushAnimalWeight : Envoi versions + * + */ + it('tracking.pushAnimalWeight : Envoi versions', async function () { + // let userId = Random.id(); + + await pushAnimalWeight._execute(context, { + id: idAnimal, + date: '2020-12-12T00:00:00Z', + weight: 4 + }); + + const result = await Pets.findOneAsync({ _id: idAnimal }); + + expect( + result.weightTracking[result.weightTracking.length - 1].weight + ).to.equal(4); + expect( + result.weightTracking[ + result.weightTracking.length - 1 + ].date.getUTCDate() + ).to.equal(12); + }); + }); + + describe('setWeightTrackingRight', function () { + let userId, context, idAnimal, userOtherId; + beforeEach(async function () { + userId = Random.id(); + userOtherId = Random.id(); + + context = { userId }; + await Meteor.users.insertAsync({ _id: userId }, (error, resul) => { + if (error) log.info('ERROR ', error); + }); + + await Meteor.users.insertAsync( + { + _id: userOtherId + }, + (error, resul) => { + if (error) log.info('ERROR ', error); + } + ); + + idAnimal = await animalcreate._execute(context, { + Name: 'Essai', + Type: 'Cheval', + isShare: true, + Birthday: '12/21/3022', + Weight: 20, + Height: 30 + }); + + await Pets.updateAsync( + { _id: idAnimal }, + { $set: { Shared: [{ _id: userOtherId, weightTrackingRight: '' }] } } + ); + + // InsertNotifSharedAnimal; + }); + + /* + * + * Method : tracking.setweighttrackingright : Vous devez être loggué. + * + */ + it('tracking.setweighttrackingright : Vous devez être loggué.', function () { + // expect(function () { + setWeightTrackingRight.call( + { + userId, + idAnimal, + right: '' + }, + (err) => { + expect(err.error).to.equal( + 'Tracking.methods.setweighttrackingright.notloggued' + ); + } + ); + /* }).to.throw( + 'Vous devez être loggué. [Tracking.methods.setweighttrackingright.notloggued]' + ); */ + }); + + /* + * + * Method : tracking.setweighttrackingright : Vous n'êtes pas le propriétaire. + * + */ + it("tracking.setweighttrackingright : Vous n'êtes pas le propriétaire.", function () { + // expect(function () { + setWeightTrackingRight._execute( + { userId: userOtherId }, + { + userId, + idAnimal, + right: 'rw' + }, + (err) => { + expect(err.error).to.equal( + 'Tracking.methods.setweighttrackingright.unauthorized' + ); + } + ); + /* }).to.throw( + "Vous n'êtes pas le propriétaire [Tracking.methods.setweighttrackingright.unauthorized]" + ); */ + }); + + /* + * + * Method : tracking.setweighttrackingright : Set Right + * + */ + it('tracking.setweighttrackingright : Set Right', async function () { + // let userId = Random.id(); + + await setWeightTrackingRight._execute(context, { + userId: userOtherId, + idAnimal, + right: 'rw' + }); + + const result = await Pets.findOneAsync({ _id: idAnimal }); + + expect(result.Shared[0].weightTrackingRight).to.equal('rw'); + }); + }); +} diff --git a/tests/views/ViewActivityAdd.js b/tests/views/ViewActivityAdd.js new file mode 100644 index 0000000..6193111 --- /dev/null +++ b/tests/views/ViewActivityAdd.js @@ -0,0 +1,621 @@ +import assert from 'assert'; +import { expect } from 'chai'; +import Pets from '../../imports/api/collections/Pets'; +import '../../imports/api/methods/Animal'; +import { Meteor } from 'meteor/meteor'; +import { Random } from 'meteor/random'; +import log from 'loglevel'; + +if (Meteor.isClient) { + import { createLocalVue, mount } from '@vue/test-utils'; + /* import { + BootstrapVue + } from 'bootstrap-vue'; */ + import { createStore } from 'vuex'; + import { createRouter } from 'vue-router'; + import { createI18n } from 'vue-i18n'; + + //import VueRouter from 'vue-router'; + //import Vuex from 'vuex'; + //import VueI18n from 'vue-i18n'; + + //import Vuelidate from 'vuelidate'; + import ViewActivityAdd from '../../imports/ui/views/ViewActivityAdd.vue'; + import ActivityAnimalCard from '../../imports/ui/components/Cards/ActivityAnimalCard.vue'; + // log.info("IMPORT TESTS"); + + //localVue.use(IconsPlugin); + + // localVue.use(BootstrapVue); + // Optionally install the BootstrapVue icon components plugin + // localVue.use(IconsPlugin); + + //Vue.use(BootstrapVue); + + import en from '/locales/en.json'; + import fr from '/locales/fr.json'; + + const localVue = createLocalVue(); + // log.info("IMPORT TESTS3"); + //localVue.use(Vuelidate); + //localVue.use(VueI18n); + // log.info("IMPORT TESTS4"); + // localVue.use(BootstrapVue); + // log.info("IMPORT TESTS1"); + + const i18n = createI18n({ + locale: process.env.VUE_APP_I18N_LOCALE || 'fr', + fallbackLocale: process.env.VUE_APP_I18N_FALLBACK_LOCALE || 'fr', + messages: { + fr: fr, + en: en + } + }); + //localVue.use(VueRouter); + // localVue.component('ActivityAnimalCard', ActivityAnimalCard); + // localVue.component('ViewActivityAdd', ViewActivityAdd); + + // log.info("IMPORT TESTS2"); + /* + * + * Composant ViewActivityAdd + * + */ + describe('Composant ViewActivityAdd: ', function () { + const state = { + geoJsonRecord: [], + activityType: [ + { + name: 'Balade', + icon: '/activityIcons/walking.png' + }, + { + name: 'Cani-cross', + icon: '/activityIcons/cani-cross.png' + }, + { + name: 'Cani-VTT', + icon: '/activityIcons/mountainBike.png' + }, + { + name: 'Canin - Education', + icon: '/activityIcons/dogActivity.png' + }, + { + name: 'Canin - Agilité', + icon: '/activityIcons/dogActivity.png' + }, + { + name: 'Canoe - Kayak', + icon: '/activityIcons/canoe.png' + }, + { + name: 'Course à pied', + icon: '/activityIcons/running.png' + }, + { + name: 'Equitation - Dressage', + icon: '/activityIcons/horseTraining.png' + }, + { + name: 'Equitation - Balade', + icon: '/activityIcons/horseRiding.png' + }, + { + name: 'Marche', + icon: '/activityIcons/walking.png' + }, + { + name: 'Marche nordique', + icon: 'fa-solid fa-person-hiking' + }, + { + name: 'Musculation', + icon: '/activityIcons/dumbell.png' + }, + { + name: 'Natation', + icon: '/activityIcons/swimming.png' + }, + { + name: 'Randonnée', + icon: '/activityIcons/hiking.png' + }, + { + name: 'Raquettes', + icon: '/activityIcons/snowRaquets.png' + }, + { + name: 'Ski de fond', + icon: '/activityIcons/crossCountrySkiing.png' + }, + { + name: 'Ski de randonnée', + icon: '/activityIcons/touringSkiing.png' + }, + { + name: 'Ski alpin', + icon: '/activityIcons/alpineSkiing.png' + }, + { + name: 'Vélo', + icon: '/activityIcons/biking.png' + } + ] + }; + const mutations = { + DisableBottomBar() {}, + EnableTopLeftButton() {}, + SetTopRightButtonState() {}, + SetTopRightButtonLabel() {}, + disableTraceRecorded() {} + }; + const store = new createStore({ + state, + mutations + }); + + const routes = [ + // dynamic segments start with a colon + { path: '/user/:id', component: ViewActivityAdd } + ]; + + const router = createRouter({ + routes + }); + //log.info("Composant ActivityAnimalCard: "); + + // let bootstrapvue = new BootstrapVue(); + // log.info("bootstrapvue"); + let wrapper; + let componentInstance; + beforeEach(() => { + wrapper = mount(ViewActivityAdd, { + global: { + plugins: [store, router, i18n] + }, + + // bootstrapvue, + data() { + return { + pets: [] + }; + }, + propsData: {}, + stubs: { + 'b-row': true, + 'b-col': true, + 'b-spinner': true, + 'b-card': true, + 'b-avatar': true, + 'b-iconstack': true, + 'b-icon': true, + 'b-button': true + } + }); + componentInstance = wrapper.vm; + }); + + it('Input Name vide', async function () { + // const nameValue = wrapper.findComponent({ ref: "input-name" }); + const nameMandatoryValue = wrapper.findComponent({ + ref: 'input-mandatory-name' + }); + assert.strictEqual(nameMandatoryValue.text(), 'Obligatoire'); + }); + + it('Input Name longueur minimale', async function () { + await wrapper.setData({ ModifyActivity: { name: 'Es' } }); + // const nameValue = wrapper.findComponent({ ref: "input-name" }); + const nameLengthValue = wrapper.findComponent({ + ref: 'input-length-name' + }); + expect(nameLengthValue.text()).to.match(/^Name must have at least*/); + }); + + it('Input Name non vide', async function () { + await wrapper.setData({ ModifyActivity: { name: 'Essai' } }); + const nameValue = wrapper.findComponent({ ref: 'input-name' }); + const nameMandatoryValue = wrapper.findComponent({ + ref: 'input-mandatory-name' + }); + // log.info(nameMandatoryValue.element); + assert.strictEqual(nameMandatoryValue.element, undefined); + assert.strictEqual(nameValue.element.value, 'Essai'); + }); + + it('Input Type vide', async function () { + // const nameValue = wrapper.findComponent({ ref: "input-name" }); + const typeMandatoryValue = wrapper.findComponent({ + ref: 'input-mandatory-type' + }); + assert.strictEqual(typeMandatoryValue.text(), 'Obligatoire'); + }); + it('Input Type non vide', async function () { + await wrapper.setData({ + ModifyActivity: { name: 'Essai', type: 'Course à pied' } + }); + const typeValue = wrapper.findComponent({ ref: 'input-type' }); + const typeMandatoryValue = wrapper.findComponent({ + ref: 'input-mandatory-type' + }); + // log.info(nameMandatoryValue.element); + assert.strictEqual(typeMandatoryValue.element, undefined); + assert.strictEqual(typeValue.element.value, 'Course à pied'); + }); + + // Tester Ajouter Photo + + it('Input Description non vide', async function () { + await wrapper.setData({ + ModifyActivity: { + name: 'Essai', + type: 'Course à pied', + description: "Une desciption, c'est cool" + } + }); + const descriptionValue = wrapper.findComponent({ + ref: 'input-description' + }); + + // log.info(nameMandatoryValue.element); + + assert.strictEqual( + descriptionValue.element.value, + "Une desciption, c'est cool" + ); + }); + + it('Input Time vide', async function () { + // const nameValue = wrapper.findComponent({ ref: "input-name" }); + const timeMandatoryValue = wrapper.findComponent({ + ref: 'input-mandatory-time' + }); + assert.strictEqual(timeMandatoryValue.text(), 'Obligatoire'); + }); + + it('Input Time non vide', async function () { + await wrapper.setData({ + ModifyActivity: { + name: 'Essai', + type: 'Course à pied', + description: "Une desciption, c'est cool", + time: '10:01:01' + } + }); + const timeValue = wrapper.findComponent({ ref: 'input-time' }); + const timeMandatoryValue = wrapper.findComponent({ + ref: 'input-mandatory-time' + }); + // log.info(nameMandatoryValue.element); + assert.strictEqual(timeMandatoryValue.element, undefined); + assert.strictEqual(timeValue.element.value, '10:01:01'); + }); + + it('Input distance non numérique', async function () { + await wrapper.setData({ ModifyActivity: { distance: '' } }); + + let distanceMandatoryValue = wrapper.findComponent({ + ref: 'input-mandatory-distance' + }); + assert.strictEqual(distanceMandatoryValue.text(), 'Obligatoire'); + await wrapper.setData({ ModifyActivity: { distance: 'E' } }); + + let distanceNumberValue = wrapper.findComponent({ + ref: 'input-number-distance' + }); + assert.strictEqual( + distanceNumberValue.text(), + 'La distance doit être un nombre.' + ); + }); + + it('Input distance négative', async function () { + await wrapper.setData({ ModifyActivity: { distance: '-1' } }); + + let distanceMandatoryValue = wrapper.findComponent({ + ref: 'input-minvalue-distance' + }); + assert.strictEqual( + distanceMandatoryValue.text(), + 'La distance doit être positive.' + ); + }); + + it('Input Distance', async function () { + await wrapper.setData({ + ModifyActivity: { + name: 'Essai', + type: 'Course à pied', + description: "Une desciption, c'est cool", + time: '10:01:01', + distance: 10 + } + }); + const distanceValue = wrapper.findComponent({ ref: 'input-distance' }); + + assert.strictEqual(distanceValue.element.value, '10'); + }); + + it('Input Date vide', async function () { + // const nameValue = wrapper.findComponent({ ref: "input-name" }); + const dateMandatoryValue = wrapper.findComponent({ + ref: 'input-mandatory-date' + }); + assert.strictEqual(dateMandatoryValue.text(), 'Obligatoire'); + }); + + it('Input Date non vide ', async function () { + await wrapper.setData({ date: '2020-01-04' }); + const dateValue = wrapper.findComponent({ ref: 'input-date' }); + const datemandatoryValue = wrapper.findComponent({ + ref: 'input-mandatory-date' + }); + + assert.strictEqual(datemandatoryValue.element, undefined); + assert.strictEqual(dateValue.element.value, '2020-01-04'); + }); + + it('Input Heure vide', async function () { + // const nameValue = wrapper.findComponent({ ref: "input-name" }); + const heureMandatoryValue = wrapper.findComponent({ + ref: 'input-mandatory-heure' + }); + assert.strictEqual(heureMandatoryValue.text(), 'Obligatoire'); + }); + + it('Input Heure non vide ', async function () { + await wrapper.setData({ heure: '20:34:04' }); + const heureValue = wrapper.findComponent({ ref: 'input-heure' }); + const heuremandatoryValue = wrapper.findComponent({ + ref: 'input-mandatory-heure' + }); + + assert.strictEqual(heuremandatoryValue.element, undefined); + assert.strictEqual(heureValue.element.value, '20:34:04'); + }); + + it('Input Animaux checked', async function () { + await wrapper.setData({ + pets: [ + { Name: 'Phantom', _id: 'dDsfFSFs' }, + { Name: 'Medoc', _id: 'dDsfdfsdfsFSFs' } + ], + ModifyActivity: { + name: 'Essai', + type: 'Course à pied', + description: "Une desciption, c'est cool", + time: '10:01:01', + distance: 10, + checked: [] + } + }); + + // log.info(wrapper.find({ ref: "input-checked-animal" }).html()); + // log.info("Chekced"); + // log.info(wrapper.find("#A01")); + + assert.strictEqual( + wrapper.find('#Check0').element.value, + 'dDsfFSFs,Phantom,0' + ); + assert.strictEqual( + wrapper.find('#Check1').element.value, + 'dDsfdfsdfsFSFs,Medoc,1' + ); + assert.strictEqual(wrapper.find('#Check01').text(), 'Phantom'); + assert.strictEqual(wrapper.find('#Check11').text(), 'Medoc'); + }); + it('Input Animaux Notes', async function () { + await wrapper.setData({ + pets: [ + { Name: 'Phantom', _id: 'dDsfFSFs' }, + { Name: 'Medoc', _id: 'dDsfdfsdfsFSFs' } + ], + ModifyActivity: { + name: 'Essai', + type: 'Course à pied', + description: "Une desciption, c'est cool", + time: '10:01:01', + distance: 10, + checked: [], + Notes: ['Notes1', 'Notes2'] + } + }); + + // log.info(wrapper.find({ ref: "input-checked-animal" }).html()); + // log.info("Chekced"); + // log.info(wrapper.find("#A01")); + + assert.strictEqual(wrapper.find('#Notes0').element.value, 'Notes1'); + assert.strictEqual(wrapper.find('#Notes1').element.value, 'Notes2'); + }); + + it('Messages Submit', async function () { + await wrapper.setData({ submitStatus: 'OK' }); + + assert.strictEqual( + wrapper.find('#OK').text(), + 'Thanks for your submission!' + ); + assert.strictEqual(wrapper.find('#ERROR').element, undefined); + assert.strictEqual(wrapper.find('#PENDING').element, undefined); + + await wrapper.setData({ submitStatus: 'ERROR' }); + + assert.strictEqual( + wrapper.find('#ERROR').text(), + 'Please fill the form correctly.' + ); + assert.strictEqual(wrapper.find('#PENDING').element, undefined); + assert.strictEqual(wrapper.find('#OK').element, undefined); + + await wrapper.setData({ submitStatus: 'PENDING' }); + + assert.strictEqual(wrapper.find('#PENDING').text(), 'Sending...'); + assert.strictEqual(wrapper.find('#ERROR').element, undefined); + assert.strictEqual(wrapper.find('#OK').element, undefined); + }); + + it('Submit', async function () { + await wrapper.setData({ + pets: [ + { Name: 'Phantom', _id: 'dDsfFSFs' }, + { Name: 'Medoc', _id: 'dDsfdfsdfsFSFs' } + ], + ModifyActivity: { + name: 'Essai', + type: 'Course à pied', + description: "Une desciption, c'est cool", + time: '10:01:01', + distance: 10, + checked: [], + Notes: ['Notes1', 'Notes2'] + }, + date: '2020-01-04', + heure: '20:03:02' + }); + + // A faire, bloque à la fin des test componentInstance.submit(); + // assert.strictEqual(resultDate, "01:01:01"); + // log.info(wrapper.find({ ref: "input-checked-animal" }).html()); + // log.info("Chekced"); + // log.info(wrapper.find("#A01")); + + // assert.strictEqual(wrapper.find("#Notes0").element.value, "Notes1"); + // assert.strictEqual(wrapper.find("#Notes1").element.value, "Notes2"); + }); + }); + + /* + * + * Composant ActivityAnimalCard + * + */ + /* + describe("Composant ActivityAnimalCard: ", () => { + const state = { + nbUploadingImages: [], + geoJsonRecord: [], + activityType: [ + "Balade", + "Cani-cross", + "Cani-VTT", + "Course à pied", + "Equitation - Dressage", + "Equitation - Balade", + "Vélo", + "Randonnée", + ], + }; + const mutations = { + DisableBottomBar() {}, + EnableTopLeftButton() {}, + SetTopRightButtonState() {}, + SetTopRightButtonLabel() {}, + disableTraceRecorded() {}, + }; + const store = new Vuex.Store({ + state, + mutations, + }); + log.info("Composant ActivityAnimalCard: "); + let wrapper; + let componentInstance; + + log.info("Composant ActivityAnimalCard : APRES"); + + beforeEach(() => { + Meteor.userId = function () { + return Random.id(); + }; + + Meteor.userById = function () { + return "zjKTB3xutRYgSk2Ne"; + }; + + const idOwner = Random.id(); + + Meteor.animal = function () { + return { + Name: "Phantom", + Owner: idOwner, + Type: "Chien", + isShare: true, + Birthday: "12/11/2020", + Weight: 10, + Height: 12, + }; + }; + + let PetId = Meteor.call("animal.create", { + Name: "Phantom", + Type: "Chien", + isShare: true, + Birthday: "12/11/2020", + Weight: 10, + Height: 12, + }); + + wrapper = mount(ActivityAnimalCard, { + localVue, + store, + i18n, + // bootstrapvue, + propsData: { + activity: { + _id: { _str: "c1cac9ff37895957c2160b11" }, + IDAnimal: PetId, + IDActivity: { _str: "95ed6468a22d8765f93769b7" }, + ActivityOwner: "zjKTB3xutRYgSk2Ne", + ActivityName: "Balade1", + ActivityDescription: "", + AnimalName: "Phantom", + AnimalOwner: idOwner, + ActivityType: "Balade", + DateAct: new Date("20210316T07:29:39Z"), + TimeFCtotal: 1024, + Distance: 1.3525403372249576, + Notes: null, + center: [], + Id_GPX: { _str: "a2ed24f539a217a7aa10e909" }, + }, + }, + data() { + return { + // userId: "EDdfrrff", + userById: "Stéphanie", + }; + }, + stubs: { + "b-row": true, + "b-col": true, + "b-spinner": true, + "b-card": true, + "b-avatar": true, + "b-iconstack": true, + "b-icon": true, + "b-button": true, + }, + }); + componentInstance = wrapper.vm; + }); + it("Method FormatDate", async function () { + let date = new Date("2020-12-24 08:57:19.000Z"); + let DateUTC = moment("2020-12-24 08:57:19.000Z"); + + let resultDate = componentInstance.FormatDate(date); + assert.strictEqual( + resultDate, + "Le " + + DateUTC.format("DD/MM/YYYY") + + " à " + + DateUTC.format("HH:mm:ss") + ); + }); + it("Method FormatTime", async function () { + let resultDate = componentInstance.FormatTime(3661); + assert.strictEqual(resultDate, "01:01:01"); + }); + });*/ +} diff --git a/vite.config.js b/vite.config.js new file mode 100644 index 0000000..060c557 --- /dev/null +++ b/vite.config.js @@ -0,0 +1,27 @@ +import { defineConfig } from 'vite' +import vue from '@vitejs/plugin-vue' +import istanbul from 'vite-plugin-istanbul'; + +export default defineConfig({ + plugins: [ istanbul({ + include: ['client/*', 'imports/*', 'server/*'], + exclude: [ + 'node_modules', + 'tests/**/*', + 'packages/**/*', + '.coverage/**', + '.vite-inspect/**', + '**.scannerwork/**' + ], + extension: ['.js', '.vue'], + cypress: true + // requireEnv: true + }), + vue()], + meteor: { + clientEntry: 'imports/ui/main.js', + }, + optimizeDeps: { + exclude: ['vue-meteor-tracker'], + }, +})