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 @@
+
+ About Page
+
+ This is the about page.
+
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 @@
+
+
+
+
+
+ You've pressed the button {{ count }} times.
+
+
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 @@
+
+
+
+ Welcome to Meteor!
+
+
+
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 @@
+
+
+
+ Learn Meteor!
+
+
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'],
+ },
+})