From 4b800202fb98d9e76f8aa2ab4e80d8d0458bd321 Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Thu, 22 Jun 2023 22:26:23 -0400 Subject: [PATCH 001/132] git app with probot --- secret-engine/.dockerignore | 12 + secret-engine/.env.example | 9 + secret-engine/.gitignore | 7 + secret-engine/CODE_OF_CONDUCT.md | 73 + secret-engine/CONTRIBUTING.md | 39 + secret-engine/Dockerfile | 8 + secret-engine/LICENSE | 15 + secret-engine/README.md | 33 + secret-engine/app.yml | 134 + secret-engine/fileContents.txt | 15 + secret-engine/jest.config.js | 9 + secret-engine/package-lock.json | 11654 ++++++++++++++++ secret-engine/package.json | 34 + secret-engine/src/index.ts | 151 + .../test/fixtures/issues.opened.json | 18 + secret-engine/test/fixtures/mock-cert.pem | 27 + secret-engine/test/index.test.ts | 74 + secret-engine/tsconfig.json | 70 + 18 files changed, 12382 insertions(+) create mode 100644 secret-engine/.dockerignore create mode 100644 secret-engine/.env.example create mode 100644 secret-engine/.gitignore create mode 100644 secret-engine/CODE_OF_CONDUCT.md create mode 100644 secret-engine/CONTRIBUTING.md create mode 100644 secret-engine/Dockerfile create mode 100644 secret-engine/LICENSE create mode 100644 secret-engine/README.md create mode 100644 secret-engine/app.yml create mode 100644 secret-engine/fileContents.txt create mode 100644 secret-engine/jest.config.js create mode 100644 secret-engine/package-lock.json create mode 100644 secret-engine/package.json create mode 100644 secret-engine/src/index.ts create mode 100644 secret-engine/test/fixtures/issues.opened.json create mode 100644 secret-engine/test/fixtures/mock-cert.pem create mode 100644 secret-engine/test/index.test.ts create mode 100644 secret-engine/tsconfig.json diff --git a/secret-engine/.dockerignore b/secret-engine/.dockerignore new file mode 100644 index 000000000..c961acb50 --- /dev/null +++ b/secret-engine/.dockerignore @@ -0,0 +1,12 @@ +**/node_modules/ +**/.git +**/README.md +**/LICENSE +**/.vscode +**/npm-debug.log +**/coverage +**/.env +**/.editorconfig +**/dist +**/*.pem +Dockerfile diff --git a/secret-engine/.env.example b/secret-engine/.env.example new file mode 100644 index 000000000..6e106aa9d --- /dev/null +++ b/secret-engine/.env.example @@ -0,0 +1,9 @@ +# The ID of your GitHub App +APP_ID= +WEBHOOK_SECRET=development + +# Use `trace` to get verbose logging or `info` to show less +LOG_LEVEL=debug + +# Go to https://smee.io/new set this to the URL that you are redirected to. +WEBHOOK_PROXY_URL= diff --git a/secret-engine/.gitignore b/secret-engine/.gitignore new file mode 100644 index 000000000..b3d906d52 --- /dev/null +++ b/secret-engine/.gitignore @@ -0,0 +1,7 @@ +node_modules +npm-debug.log +*.pem +!mock-cert.pem +.env +coverage +lib diff --git a/secret-engine/CODE_OF_CONDUCT.md b/secret-engine/CODE_OF_CONDUCT.md new file mode 100644 index 000000000..203ff8f13 --- /dev/null +++ b/secret-engine/CODE_OF_CONDUCT.md @@ -0,0 +1,73 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as +contributors and maintainers pledge to making participation in our project and +our community a harassment-free experience for everyone, regardless of age, body +size, disability, ethnicity, gender identity and expression, level of experience, +education, socio-economic status, nationality, personal appearance, race, +religion, or sexual identity and orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment +include: + +- Using welcoming and inclusive language +- Being respectful of differing viewpoints and experiences +- Gracefully accepting constructive criticism +- Focusing on what is best for the community +- Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +- The use of sexualized language or imagery and unwelcome sexual attention or + advances +- Trolling, insulting/derogatory comments, and personal or political attacks +- Public or private harassment +- Publishing others' private information, such as a physical or electronic + address, without explicit permission +- Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable +behavior and are expected to take appropriate and fair corrective action in +response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or +reject comments, commits, code, wiki edits, issues, and other contributions +that are not aligned to this Code of Conduct, or to ban temporarily or +permanently any contributor for other behaviors that they deem inappropriate, +threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies both within project spaces and in public spaces +when an individual is representing the project or its community. Examples of +representing a project or community include using an official project e-mail +address, posting via an official social media account, or acting as an appointed +representative at an online or offline event. Representation of a project may be +further defined and clarified by project maintainers. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported by contacting the project team at . All +complaints will be reviewed and investigated and will result in a response that +is deemed necessary and appropriate to the circumstances. The project team is +obligated to maintain confidentiality with regard to the reporter of an incident. +Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good +faith may face temporary or permanent repercussions as determined by other +members of the project's leadership. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, +available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html + +[homepage]: https://www.contributor-covenant.org diff --git a/secret-engine/CONTRIBUTING.md b/secret-engine/CONTRIBUTING.md new file mode 100644 index 000000000..f6ebb8125 --- /dev/null +++ b/secret-engine/CONTRIBUTING.md @@ -0,0 +1,39 @@ +## Contributing + +[fork]: /fork +[pr]: /compare +[code-of-conduct]: CODE_OF_CONDUCT.md + +Hi there! We're thrilled that you'd like to contribute to this project. Your help is essential for keeping it great. + +Please note that this project is released with a [Contributor Code of Conduct][code-of-conduct]. By participating in this project you agree to abide by its terms. + +## Issues and PRs + +If you have suggestions for how this project could be improved, or want to report a bug, open an issue! We'd love all and any contributions. If you have questions, too, we'd love to hear them. + +We'd also love PRs. If you're thinking of a large PR, we advise opening up an issue first to talk about it, though! Look at the links below if you're not sure how to open a PR. + +## Submitting a pull request + +1. [Fork][fork] and clone the repository. +1. Configure and install the dependencies: `npm install`. +1. Make sure the tests pass on your machine: `npm test`, note: these tests also apply the linter, so there's no need to lint separately. +1. Create a new branch: `git checkout -b my-branch-name`. +1. Make your change, add tests, and make sure the tests still pass. +1. Push to your fork and [submit a pull request][pr]. +1. Pat your self on the back and wait for your pull request to be reviewed and merged. + +Here are a few things you can do that will increase the likelihood of your pull request being accepted: + +- Write and update tests. +- Keep your changes as focused as possible. If there are multiple changes you would like to make that are not dependent upon each other, consider submitting them as separate pull requests. +- Write a [good commit message](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html). + +Work in Progress pull requests are also welcome to get feedback early on, or if there is something blocked you. + +## Resources + +- [How to Contribute to Open Source](https://opensource.guide/how-to-contribute/) +- [Using Pull Requests](https://help.github.com/articles/about-pull-requests/) +- [GitHub Help](https://help.github.com) diff --git a/secret-engine/Dockerfile b/secret-engine/Dockerfile new file mode 100644 index 000000000..c1cd23e10 --- /dev/null +++ b/secret-engine/Dockerfile @@ -0,0 +1,8 @@ +FROM node:18-slim +WORKDIR /usr/src/app +COPY package.json package-lock.json ./ +RUN npm ci --production +RUN npm cache clean --force +ENV NODE_ENV="production" +COPY . . +CMD [ "npm", "start" ] diff --git a/secret-engine/LICENSE b/secret-engine/LICENSE new file mode 100644 index 000000000..929df0bac --- /dev/null +++ b/secret-engine/LICENSE @@ -0,0 +1,15 @@ +ISC License + +Copyright (c) 2023, Maidul Islam + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/secret-engine/README.md b/secret-engine/README.md new file mode 100644 index 000000000..f70e2afd0 --- /dev/null +++ b/secret-engine/README.md @@ -0,0 +1,33 @@ +# secret-engine + +> A GitHub App built with [Probot](https://github.com/probot/probot) that Infisical secret engine + +## Setup + +```sh +# Install dependencies +npm install + +# Run the bot +npm start +``` + +## Docker + +```sh +# 1. Build container +docker build -t secret-engine . + +# 2. Start container +docker run -e APP_ID= -e PRIVATE_KEY= secret-engine +``` + +## Contributing + +If you have suggestions for how secret-engine could be improved, or want to report a bug, open an issue! We'd love all and any contributions. + +For more, check out the [Contributing Guide](CONTRIBUTING.md). + +## License + +[ISC](LICENSE) © 2023 Maidul Islam diff --git a/secret-engine/app.yml b/secret-engine/app.yml new file mode 100644 index 000000000..baea2801a --- /dev/null +++ b/secret-engine/app.yml @@ -0,0 +1,134 @@ +# This is a GitHub App Manifest. These settings will be used by default when +# initially configuring your GitHub App. +# +# NOTE: changing this file will not update your GitHub App settings. +# You must visit github.com/settings/apps/your-app-name to edit them. +# +# Read more about configuring your GitHub App: +# https://probot.github.io/docs/development/#configuring-a-github-app +# +# Read more about GitHub App Manifests: +# https://developer.github.com/apps/building-github-apps/creating-github-apps-from-a-manifest/ + +# The list of events the GitHub App subscribes to. +# Uncomment the event names below to enable them. +default_events: + # - check_run + # - check_suite + # - commit_comment + # - create + # - delete + # - deployment + # - deployment_status + # - fork + # - gollum + # - issue_comment + - issues + - push +# - label +# - milestone +# - member +# - membership +# - org_block +# - organization +# - page_build +# - project +# - project_card +# - project_column +# - public +# - pull_request +# - pull_request_review +# - pull_request_review_comment +# - release +# - repository +# - repository_import +# - status +# - team +# - team_add +# - watch + +# The set of permissions needed by the GitHub App. The format of the object uses +# the permission name for the key (for example, issues) and the access type for +# the value (for example, write). +# Valid values are `read`, `write`, and `none` +default_permissions: + # Repository creation, deletion, settings, teams, and collaborators. + # https://developer.github.com/v3/apps/permissions/#permission-on-administration + # administration: read + + # Checks on code. + # https://developer.github.com/v3/apps/permissions/#permission-on-checks + checks: write + + # Repository contents, commits, branches, downloads, releases, and merges. + # https://developer.github.com/v3/apps/permissions/#permission-on-contents + contents: read + + # Deployments and deployment statuses. + # https://developer.github.com/v3/apps/permissions/#permission-on-deployments + # deployments: read + + # Issues and related comments, assignees, labels, and milestones. + # https://developer.github.com/v3/apps/permissions/#permission-on-issues + issues: write + + # Search repositories, list collaborators, and access repository metadata. + # https://developer.github.com/v3/apps/permissions/#metadata-permissions + metadata: read + + # Retrieve Pages statuses, configuration, and builds, as well as create new builds. + # https://developer.github.com/v3/apps/permissions/#permission-on-pages + # pages: read + + # Pull requests and related comments, assignees, labels, milestones, and merges. + # https://developer.github.com/v3/apps/permissions/#permission-on-pull-requests + pull_requests: write + + # Manage the post-receive hooks for a repository. + # https://developer.github.com/v3/apps/permissions/#permission-on-repository-hooks + # repository_hooks: read + + # Manage repository projects, columns, and cards. + # https://developer.github.com/v3/apps/permissions/#permission-on-repository-projects + # repository_projects: read + + # Retrieve security vulnerability alerts. + # https://developer.github.com/v4/object/repositoryvulnerabilityalert/ + # vulnerability_alerts: read + + # Commit statuses. + # https://developer.github.com/v3/apps/permissions/#permission-on-statuses + # statuses: read + + # Organization members and teams. + # https://developer.github.com/v3/apps/permissions/#permission-on-members + # members: read + + # View and manage users blocked by the organization. + # https://developer.github.com/v3/apps/permissions/#permission-on-organization-user-blocking + # organization_user_blocking: read + + # Manage organization projects, columns, and cards. + # https://developer.github.com/v3/apps/permissions/#permission-on-organization-projects + # organization_projects: read + + # Manage team discussions and related comments. + # https://developer.github.com/v3/apps/permissions/#permission-on-team-discussions + # team_discussions: read + + # Manage the post-receive hooks for an organization. + # https://developer.github.com/v3/apps/permissions/#permission-on-organization-hooks + # organization_hooks: read + + # Get notified of, and update, content references. + # https://developer.github.com/v3/apps/permissions/ + # organization_administration: read +# The name of the GitHub App. Defaults to the name specified in package.json +name: Infisical Radar +# The homepage of your GitHub App. +url: https://infisical.com/radar +# A description of the GitHub App. +description: A description of my awesome app +# Set to true when your GitHub App is available to the public or false when it is only accessible to the owner of the app. +# Default: true +# public: false diff --git a/secret-engine/fileContents.txt b/secret-engine/fileContents.txt new file mode 100644 index 000000000..415b5537d --- /dev/null +++ b/secret-engine/fileContents.txt @@ -0,0 +1,15 @@ +# New-folder +Our small pizza is 10 inches and serves 1—3 people.fOr you can orderffwef a larger pizza size and sfwefweplit the toppings so that everyone dines happy. +ddfdfdfd +Our small pizza is 10 inches and serves 1—3 people.fOr you can orderffwef a larger pizza size and sfwefweplit the toppings so that everyone dines happy. +Our small pizz + +cc +ss123 + +JWT_AUTH_SECRET=4be6ba5602e0fa0ac6ac05c3cd4d247f + +export CLOUDSMITH_API_KEY=f5cf077b879c2ab46a49c6f1ec4199e6fba0fc0b +1234abc + +ssd diff --git a/secret-engine/jest.config.js b/secret-engine/jest.config.js new file mode 100644 index 000000000..9ee81b0f3 --- /dev/null +++ b/secret-engine/jest.config.js @@ -0,0 +1,9 @@ +module.exports = { + roots: ["/src/", "/test/"], + transform: { + "^.+\\.tsx?$": "ts-jest", + }, + testRegex: "(/__tests__/.*|\\.(test|spec))\\.[tj]sx?$", + moduleFileExtensions: ["ts", "tsx", "js", "jsx", "json", "node"], + testEnvironment: "node", +}; diff --git a/secret-engine/package-lock.json b/secret-engine/package-lock.json new file mode 100644 index 000000000..dfaeb146a --- /dev/null +++ b/secret-engine/package-lock.json @@ -0,0 +1,11654 @@ +{ + "name": "secret-engine", + "version": "1.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "secret-engine", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "probot": "^12.2.4" + }, + "devDependencies": { + "@types/jest": "^29.0.0", + "@types/node": "^18.0.0", + "jest": "^29.0.0", + "nock": "^13.0.5", + "smee-client": "^1.2.2", + "ts-jest": "^29.0.0", + "typescript": "^4.1.3" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "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/@babel/code-frame": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.5.tgz", + "integrity": "sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.5.tgz", + "integrity": "sha512-4Jc/YuIaYqKnDDz892kPIledykKg12Aw1PYX5i/TY28anJtacvM1Rrr8wbieB9GfEJwlzqT0hUEao0CxEebiDA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.5.tgz", + "integrity": "sha512-SBuTAjg91A3eKOvD+bPEz3LlhHZRNu1nFOVts9lzDJTXshHTjII0BAtDS3Y2DAkdZdDKWVZGVwkDfc4Clxn1dg==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.22.5", + "@babel/generator": "^7.22.5", + "@babel/helper-compilation-targets": "^7.22.5", + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helpers": "^7.22.5", + "@babel/parser": "^7.22.5", + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.5", + "@babel/types": "^7.22.5", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.2", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/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/@babel/generator": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.5.tgz", + "integrity": "sha512-+lcUbnTRhd0jOewtFSedLyiPsD5tswKkbgcezOqqWFUVNEwoUTlpPOBmvhG7OXWLR4jMdv0czPGH5XbflnD1EA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5", + "@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-compilation-targets": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.5.tgz", + "integrity": "sha512-Ji+ywpHeuqxB8WDxraCiqR0xfhYjiDE/e6k7FuIaANnoOFxAHskHChz4vA1mJC9Lbm01s1PVAGhQY4FUKSkGZw==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.22.5", + "@babel/helper-validator-option": "^7.22.5", + "browserslist": "^4.21.3", + "lru-cache": "^5.1.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz", + "integrity": "sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz", + "integrity": "sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==", + "dev": true, + "dependencies": { + "@babel/template": "^7.22.5", + "@babel/types": "^7.22.5" + }, + "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==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz", + "integrity": "sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.5.tgz", + "integrity": "sha512-+hGKDt/Ze8GFExiVHno/2dvG5IdstpzCq0y4Qc9OJ25D4q3pKfiIP/4Vp3/JvhDkLKsDK2api3q3fpIgiIF5bw==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.5", + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.5", + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "dev": true, + "engines": { + "node": ">=6.9.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-split-export-declaration": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.5.tgz", + "integrity": "sha512-thqK5QFghPKWLhAV321lxF95yCg2K3Ob5yw+M3VHWfdia0IkPXUtoLH8x/6Fh486QUvzhb8YOWHChTVen2/PoQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", + "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", + "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz", + "integrity": "sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.5.tgz", + "integrity": "sha512-pSXRmfE1vzcUIDFQcSGA5Mr+GxBV9oiRKDuDxXvWQQBCh8HoIjs/2DlDB7H8smac1IVrB9/xdXj2N3Wol9Cr+Q==", + "dev": true, + "dependencies": { + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.5", + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.5.tgz", + "integrity": "sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.5", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/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==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/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==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/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==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/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==", + "dev": true + }, + "node_modules/@babel/highlight/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==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/highlight/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==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/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==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.5.tgz", + "integrity": "sha512-DFZMC9LJUG9PLOclRC32G63UXwzqS2koQC8dkx+PLdmt1xSePYpbT/NbsrJy8Q/muXz7o/h/d4A7Fuyixm559Q==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.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, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": 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, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "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, + "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, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz", + "integrity": "sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==", + "dev": 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-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, + "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, + "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, + "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, + "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, + "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, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.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, + "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-typescript": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz", + "integrity": "sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.5.tgz", + "integrity": "sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.22.5", + "@babel/parser": "^7.22.5", + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.5.tgz", + "integrity": "sha512-7DuIjPgERaNo6r+PZwItpjCZEa5vyw4eJGufeLxrPdBXBoLcCJCIasvK6pK/9DVNrLZTLFhUGqaC6X/PA007TQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.22.5", + "@babel/generator": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.5", + "@babel/parser": "^7.22.5", + "@babel/types": "^7.22.5", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.5.tgz", + "integrity": "sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.5", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "node_modules/@hapi/bourne": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-2.1.0.tgz", + "integrity": "sha512-i1BpaNDVLJdRBEKeJWkVO6tYX6DMFBuwMhSuWqLsY4ufeTKGVuV5rBsUhxPayXqnnWHgXUAmWK16H/ykO5Wj4Q==" + }, + "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/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/@jest/console": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.5.0.tgz", + "integrity": "sha512-NEpkObxPwyw/XxZVLPmAGKE89IQRp4puc6IQRPru6JKd1M3fW9v1xM1AnzIJE65hbCkzQAdnL8P47e9hzhiYLQ==", + "dev": true, + "dependencies": { + "@jest/types": "^29.5.0", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.5.0", + "jest-util": "^29.5.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/core": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.5.0.tgz", + "integrity": "sha512-28UzQc7ulUrOQw1IsN/kv1QES3q2kkbl/wGslyhAclqZ/8cMdB5M68BffkIdSJgKBUt50d3hbwJ92XESlE7LiQ==", + "dev": true, + "dependencies": { + "@jest/console": "^29.5.0", + "@jest/reporters": "^29.5.0", + "@jest/test-result": "^29.5.0", + "@jest/transform": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.5.0", + "jest-config": "^29.5.0", + "jest-haste-map": "^29.5.0", + "jest-message-util": "^29.5.0", + "jest-regex-util": "^29.4.3", + "jest-resolve": "^29.5.0", + "jest-resolve-dependencies": "^29.5.0", + "jest-runner": "^29.5.0", + "jest-runtime": "^29.5.0", + "jest-snapshot": "^29.5.0", + "jest-util": "^29.5.0", + "jest-validate": "^29.5.0", + "jest-watcher": "^29.5.0", + "micromatch": "^4.0.4", + "pretty-format": "^29.5.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/core/node_modules/jest-config": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.5.0.tgz", + "integrity": "sha512-kvDUKBnNJPNBmFFOhDbm59iu1Fii1Q6SxyhXfvylq3UTHbg6o7j/g8k2dZyXWLvfdKB1vAPxNZnMgtKJcmu3kA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.5.0", + "@jest/types": "^29.5.0", + "babel-jest": "^29.5.0", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.5.0", + "jest-environment-node": "^29.5.0", + "jest-get-type": "^29.4.3", + "jest-regex-util": "^29.4.3", + "jest-resolve": "^29.5.0", + "jest-runner": "^29.5.0", + "jest-util": "^29.5.0", + "jest-validate": "^29.5.0", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.5.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/@jest/core/node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@jest/environment": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.5.0.tgz", + "integrity": "sha512-5FXw2+wD29YU1d4I2htpRX7jYnAyTRjP2CsXQdo9SAM8g3ifxWPSV0HnClSn71xwctr0U3oZIIH+dtbfmnbXVQ==", + "dev": true, + "dependencies": { + "@jest/fake-timers": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/node": "*", + "jest-mock": "^29.5.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.5.0.tgz", + "integrity": "sha512-PueDR2HGihN3ciUNGr4uelropW7rqUfTiOn+8u0leg/42UhblPxHkfoh0Ruu3I9Y1962P3u2DY4+h7GVTSVU6g==", + "dev": true, + "dependencies": { + "expect": "^29.5.0", + "jest-snapshot": "^29.5.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect-utils": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.5.0.tgz", + "integrity": "sha512-fmKzsidoXQT2KwnrwE0SQq3uj8Z763vzR8LnLBwC2qYWEFpjX8daRsk6rHUM1QvNlEW/UJXNXm59ztmJJWs2Mg==", + "dev": true, + "dependencies": { + "jest-get-type": "^29.4.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.5.0.tgz", + "integrity": "sha512-9ARvuAAQcBwDAqOnglWq2zwNIRUDtk/SCkp/ToGEhFv5r86K21l+VEs0qNTaXtyiY0lEePl3kylijSYJQqdbDg==", + "dev": true, + "dependencies": { + "@jest/types": "^29.5.0", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.5.0", + "jest-mock": "^29.5.0", + "jest-util": "^29.5.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.5.0.tgz", + "integrity": "sha512-S02y0qMWGihdzNbUiqSAiKSpSozSuHX5UYc7QbnHP+D9Lyw8DgGGCinrN9uSuHPeKgSSzvPom2q1nAtBvUsvPQ==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.5.0", + "@jest/expect": "^29.5.0", + "@jest/types": "^29.5.0", + "jest-mock": "^29.5.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.5.0.tgz", + "integrity": "sha512-D05STXqj/M8bP9hQNSICtPqz97u7ffGzZu+9XLucXhkOFBqKcXe04JLZOgIekOxdb73MAoBUFnqvf7MCpKk5OA==", + "dev": true, + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^29.5.0", + "@jest/test-result": "^29.5.0", + "@jest/transform": "^29.5.0", + "@jest/types": "^29.5.0", + "@jridgewell/trace-mapping": "^0.3.15", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.5.0", + "jest-util": "^29.5.0", + "jest-worker": "^29.5.0", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/schemas": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.4.3.tgz", + "integrity": "sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg==", + "dev": true, + "dependencies": { + "@sinclair/typebox": "^0.25.16" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/source-map": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.4.3.tgz", + "integrity": "sha512-qyt/mb6rLyd9j1jUts4EQncvS6Yy3PM9HghnNv86QBlV+zdL2inCdK1tuVlL+J+lpiw2BI67qXOrX3UurBqQ1w==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.15", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-result": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.5.0.tgz", + "integrity": "sha512-fGl4rfitnbfLsrfx1uUpDEESS7zM8JdgZgOCQuxQvL1Sn/I6ijeAVQWGfXI9zb1i9Mzo495cIpVZhA0yr60PkQ==", + "dev": true, + "dependencies": { + "@jest/console": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.5.0.tgz", + "integrity": "sha512-yPafQEcKjkSfDXyvtgiV4pevSeyuA6MQr6ZIdVkWJly9vkqjnFfcfhRQqpD5whjoU8EORki752xQmjaqoFjzMQ==", + "dev": true, + "dependencies": { + "@jest/test-result": "^29.5.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.5.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.5.0.tgz", + "integrity": "sha512-8vbeZWqLJOvHaDfeMuoHITGKSz5qWc9u04lnWrQE3VyuSw604PzQM824ZeX9XSjUCeDiE3GuxZe5UKa8J61NQw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/types": "^29.5.0", + "@jridgewell/trace-mapping": "^0.3.15", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.5.0", + "jest-regex-util": "^29.4.3", + "jest-util": "^29.5.0", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/types": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.5.0.tgz", + "integrity": "sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.4.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dev": true, + "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.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "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==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.18", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", + "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "node_modules/@jridgewell/trace-mapping/node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "node_modules/@octokit/auth-app": { + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/@octokit/auth-app/-/auth-app-4.0.13.tgz", + "integrity": "sha512-NBQkmR/Zsc+8fWcVIFrwDgNXS7f4XDrkd9LHdi9DPQw1NdGHLviLzRO2ZBwTtepnwHXW5VTrVU9eFGijMUqllg==", + "dependencies": { + "@octokit/auth-oauth-app": "^5.0.0", + "@octokit/auth-oauth-user": "^2.0.0", + "@octokit/request": "^6.0.0", + "@octokit/request-error": "^3.0.0", + "@octokit/types": "^9.0.0", + "deprecation": "^2.3.1", + "lru-cache": "^9.0.0", + "universal-github-app-jwt": "^1.1.1", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@octokit/auth-app/node_modules/@octokit/endpoint": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.6.tgz", + "integrity": "sha512-5L4fseVRUsDFGR00tMWD/Trdeeihn999rTMGRMC1G/Ldi1uWlWJzI98H4Iak5DB/RVvQuyMYKqSK/R6mbSOQyg==", + "dependencies": { + "@octokit/types": "^9.0.0", + "is-plain-object": "^5.0.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@octokit/auth-app/node_modules/@octokit/openapi-types": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-18.0.0.tgz", + "integrity": "sha512-V8GImKs3TeQRxRtXFpG2wl19V7444NIOTDF24AWuIbmNaNYOQMWRbjcGDXV5B+0n887fgDcuMNOmlul+k+oJtw==" + }, + "node_modules/@octokit/auth-app/node_modules/@octokit/request": { + "version": "6.2.8", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-6.2.8.tgz", + "integrity": "sha512-ow4+pkVQ+6XVVsekSYBzJC0VTVvh/FCTUUgTsboGq+DTeWdyIFV8WSCdo0RIxk6wSkBTHqIK1mYuY7nOBXOchw==", + "dependencies": { + "@octokit/endpoint": "^7.0.0", + "@octokit/request-error": "^3.0.0", + "@octokit/types": "^9.0.0", + "is-plain-object": "^5.0.0", + "node-fetch": "^2.6.7", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@octokit/auth-app/node_modules/@octokit/request-error": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.3.tgz", + "integrity": "sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ==", + "dependencies": { + "@octokit/types": "^9.0.0", + "deprecation": "^2.0.0", + "once": "^1.4.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@octokit/auth-app/node_modules/@octokit/types": { + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-9.3.2.tgz", + "integrity": "sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA==", + "dependencies": { + "@octokit/openapi-types": "^18.0.0" + } + }, + "node_modules/@octokit/auth-app/node_modules/lru-cache": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-9.1.2.tgz", + "integrity": "sha512-ERJq3FOzJTxBbFjZ7iDs+NiK4VI9Wz+RdrrAB8dio1oV+YvdPzUEE4QNiT2VD51DkIbCYRUUzCRkssXCHqSnKQ==", + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/@octokit/auth-oauth-app": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-app/-/auth-oauth-app-5.0.6.tgz", + "integrity": "sha512-SxyfIBfeFcWd9Z/m1xa4LENTQ3l1y6Nrg31k2Dcb1jS5ov7pmwMJZ6OGX8q3K9slRgVpeAjNA1ipOAMHkieqyw==", + "dependencies": { + "@octokit/auth-oauth-device": "^4.0.0", + "@octokit/auth-oauth-user": "^2.0.0", + "@octokit/request": "^6.0.0", + "@octokit/types": "^9.0.0", + "@types/btoa-lite": "^1.0.0", + "btoa-lite": "^1.0.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@octokit/auth-oauth-app/node_modules/@octokit/endpoint": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.6.tgz", + "integrity": "sha512-5L4fseVRUsDFGR00tMWD/Trdeeihn999rTMGRMC1G/Ldi1uWlWJzI98H4Iak5DB/RVvQuyMYKqSK/R6mbSOQyg==", + "dependencies": { + "@octokit/types": "^9.0.0", + "is-plain-object": "^5.0.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@octokit/auth-oauth-app/node_modules/@octokit/openapi-types": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-18.0.0.tgz", + "integrity": "sha512-V8GImKs3TeQRxRtXFpG2wl19V7444NIOTDF24AWuIbmNaNYOQMWRbjcGDXV5B+0n887fgDcuMNOmlul+k+oJtw==" + }, + "node_modules/@octokit/auth-oauth-app/node_modules/@octokit/request": { + "version": "6.2.8", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-6.2.8.tgz", + "integrity": "sha512-ow4+pkVQ+6XVVsekSYBzJC0VTVvh/FCTUUgTsboGq+DTeWdyIFV8WSCdo0RIxk6wSkBTHqIK1mYuY7nOBXOchw==", + "dependencies": { + "@octokit/endpoint": "^7.0.0", + "@octokit/request-error": "^3.0.0", + "@octokit/types": "^9.0.0", + "is-plain-object": "^5.0.0", + "node-fetch": "^2.6.7", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@octokit/auth-oauth-app/node_modules/@octokit/request-error": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.3.tgz", + "integrity": "sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ==", + "dependencies": { + "@octokit/types": "^9.0.0", + "deprecation": "^2.0.0", + "once": "^1.4.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@octokit/auth-oauth-app/node_modules/@octokit/types": { + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-9.3.2.tgz", + "integrity": "sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA==", + "dependencies": { + "@octokit/openapi-types": "^18.0.0" + } + }, + "node_modules/@octokit/auth-oauth-device": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-device/-/auth-oauth-device-4.0.5.tgz", + "integrity": "sha512-XyhoWRTzf2ZX0aZ52a6Ew5S5VBAfwwx1QnC2Np6Et3MWQpZjlREIcbcvVZtkNuXp6Z9EeiSLSDUqm3C+aMEHzQ==", + "dependencies": { + "@octokit/oauth-methods": "^2.0.0", + "@octokit/request": "^6.0.0", + "@octokit/types": "^9.0.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@octokit/auth-oauth-device/node_modules/@octokit/endpoint": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.6.tgz", + "integrity": "sha512-5L4fseVRUsDFGR00tMWD/Trdeeihn999rTMGRMC1G/Ldi1uWlWJzI98H4Iak5DB/RVvQuyMYKqSK/R6mbSOQyg==", + "dependencies": { + "@octokit/types": "^9.0.0", + "is-plain-object": "^5.0.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@octokit/auth-oauth-device/node_modules/@octokit/openapi-types": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-18.0.0.tgz", + "integrity": "sha512-V8GImKs3TeQRxRtXFpG2wl19V7444NIOTDF24AWuIbmNaNYOQMWRbjcGDXV5B+0n887fgDcuMNOmlul+k+oJtw==" + }, + "node_modules/@octokit/auth-oauth-device/node_modules/@octokit/request": { + "version": "6.2.8", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-6.2.8.tgz", + "integrity": "sha512-ow4+pkVQ+6XVVsekSYBzJC0VTVvh/FCTUUgTsboGq+DTeWdyIFV8WSCdo0RIxk6wSkBTHqIK1mYuY7nOBXOchw==", + "dependencies": { + "@octokit/endpoint": "^7.0.0", + "@octokit/request-error": "^3.0.0", + "@octokit/types": "^9.0.0", + "is-plain-object": "^5.0.0", + "node-fetch": "^2.6.7", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@octokit/auth-oauth-device/node_modules/@octokit/request-error": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.3.tgz", + "integrity": "sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ==", + "dependencies": { + "@octokit/types": "^9.0.0", + "deprecation": "^2.0.0", + "once": "^1.4.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@octokit/auth-oauth-device/node_modules/@octokit/types": { + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-9.3.2.tgz", + "integrity": "sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA==", + "dependencies": { + "@octokit/openapi-types": "^18.0.0" + } + }, + "node_modules/@octokit/auth-oauth-user": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-user/-/auth-oauth-user-2.1.2.tgz", + "integrity": "sha512-kkRqNmFe7s5GQcojE3nSlF+AzYPpPv7kvP/xYEnE57584pixaFBH8Vovt+w5Y3E4zWUEOxjdLItmBTFAWECPAg==", + "dependencies": { + "@octokit/auth-oauth-device": "^4.0.0", + "@octokit/oauth-methods": "^2.0.0", + "@octokit/request": "^6.0.0", + "@octokit/types": "^9.0.0", + "btoa-lite": "^1.0.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@octokit/auth-oauth-user/node_modules/@octokit/endpoint": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.6.tgz", + "integrity": "sha512-5L4fseVRUsDFGR00tMWD/Trdeeihn999rTMGRMC1G/Ldi1uWlWJzI98H4Iak5DB/RVvQuyMYKqSK/R6mbSOQyg==", + "dependencies": { + "@octokit/types": "^9.0.0", + "is-plain-object": "^5.0.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@octokit/auth-oauth-user/node_modules/@octokit/openapi-types": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-18.0.0.tgz", + "integrity": "sha512-V8GImKs3TeQRxRtXFpG2wl19V7444NIOTDF24AWuIbmNaNYOQMWRbjcGDXV5B+0n887fgDcuMNOmlul+k+oJtw==" + }, + "node_modules/@octokit/auth-oauth-user/node_modules/@octokit/request": { + "version": "6.2.8", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-6.2.8.tgz", + "integrity": "sha512-ow4+pkVQ+6XVVsekSYBzJC0VTVvh/FCTUUgTsboGq+DTeWdyIFV8WSCdo0RIxk6wSkBTHqIK1mYuY7nOBXOchw==", + "dependencies": { + "@octokit/endpoint": "^7.0.0", + "@octokit/request-error": "^3.0.0", + "@octokit/types": "^9.0.0", + "is-plain-object": "^5.0.0", + "node-fetch": "^2.6.7", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@octokit/auth-oauth-user/node_modules/@octokit/request-error": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.3.tgz", + "integrity": "sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ==", + "dependencies": { + "@octokit/types": "^9.0.0", + "deprecation": "^2.0.0", + "once": "^1.4.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@octokit/auth-oauth-user/node_modules/@octokit/types": { + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-9.3.2.tgz", + "integrity": "sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA==", + "dependencies": { + "@octokit/openapi-types": "^18.0.0" + } + }, + "node_modules/@octokit/auth-token": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.5.0.tgz", + "integrity": "sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==", + "dependencies": { + "@octokit/types": "^6.0.3" + } + }, + "node_modules/@octokit/auth-token/node_modules/@octokit/openapi-types": { + "version": "12.11.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.11.0.tgz", + "integrity": "sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==" + }, + "node_modules/@octokit/auth-token/node_modules/@octokit/types": { + "version": "6.41.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.41.0.tgz", + "integrity": "sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==", + "dependencies": { + "@octokit/openapi-types": "^12.11.0" + } + }, + "node_modules/@octokit/auth-unauthenticated": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@octokit/auth-unauthenticated/-/auth-unauthenticated-3.0.5.tgz", + "integrity": "sha512-yH2GPFcjrTvDWPwJWWCh0tPPtTL5SMgivgKPA+6v/XmYN6hGQkAto8JtZibSKOpf8ipmeYhLNWQ2UgW0GYILCw==", + "dependencies": { + "@octokit/request-error": "^3.0.0", + "@octokit/types": "^9.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@octokit/auth-unauthenticated/node_modules/@octokit/openapi-types": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-18.0.0.tgz", + "integrity": "sha512-V8GImKs3TeQRxRtXFpG2wl19V7444NIOTDF24AWuIbmNaNYOQMWRbjcGDXV5B+0n887fgDcuMNOmlul+k+oJtw==" + }, + "node_modules/@octokit/auth-unauthenticated/node_modules/@octokit/request-error": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.3.tgz", + "integrity": "sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ==", + "dependencies": { + "@octokit/types": "^9.0.0", + "deprecation": "^2.0.0", + "once": "^1.4.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@octokit/auth-unauthenticated/node_modules/@octokit/types": { + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-9.3.2.tgz", + "integrity": "sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA==", + "dependencies": { + "@octokit/openapi-types": "^18.0.0" + } + }, + "node_modules/@octokit/core": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-3.6.0.tgz", + "integrity": "sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q==", + "dependencies": { + "@octokit/auth-token": "^2.4.4", + "@octokit/graphql": "^4.5.8", + "@octokit/request": "^5.6.3", + "@octokit/request-error": "^2.0.5", + "@octokit/types": "^6.0.3", + "before-after-hook": "^2.2.0", + "universal-user-agent": "^6.0.0" + } + }, + "node_modules/@octokit/core/node_modules/@octokit/openapi-types": { + "version": "12.11.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.11.0.tgz", + "integrity": "sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==" + }, + "node_modules/@octokit/core/node_modules/@octokit/types": { + "version": "6.41.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.41.0.tgz", + "integrity": "sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==", + "dependencies": { + "@octokit/openapi-types": "^12.11.0" + } + }, + "node_modules/@octokit/endpoint": { + "version": "6.0.12", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.12.tgz", + "integrity": "sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==", + "dependencies": { + "@octokit/types": "^6.0.3", + "is-plain-object": "^5.0.0", + "universal-user-agent": "^6.0.0" + } + }, + "node_modules/@octokit/endpoint/node_modules/@octokit/openapi-types": { + "version": "12.11.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.11.0.tgz", + "integrity": "sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==" + }, + "node_modules/@octokit/endpoint/node_modules/@octokit/types": { + "version": "6.41.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.41.0.tgz", + "integrity": "sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==", + "dependencies": { + "@octokit/openapi-types": "^12.11.0" + } + }, + "node_modules/@octokit/graphql": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.8.0.tgz", + "integrity": "sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==", + "dependencies": { + "@octokit/request": "^5.6.0", + "@octokit/types": "^6.0.3", + "universal-user-agent": "^6.0.0" + } + }, + "node_modules/@octokit/graphql/node_modules/@octokit/openapi-types": { + "version": "12.11.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.11.0.tgz", + "integrity": "sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==" + }, + "node_modules/@octokit/graphql/node_modules/@octokit/types": { + "version": "6.41.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.41.0.tgz", + "integrity": "sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==", + "dependencies": { + "@octokit/openapi-types": "^12.11.0" + } + }, + "node_modules/@octokit/oauth-authorization-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@octokit/oauth-authorization-url/-/oauth-authorization-url-5.0.0.tgz", + "integrity": "sha512-y1WhN+ERDZTh0qZ4SR+zotgsQUE1ysKnvBt1hvDRB2WRzYtVKQjn97HEPzoehh66Fj9LwNdlZh+p6TJatT0zzg==", + "engines": { + "node": ">= 14" + } + }, + "node_modules/@octokit/oauth-methods": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@octokit/oauth-methods/-/oauth-methods-2.0.6.tgz", + "integrity": "sha512-l9Uml2iGN2aTWLZcm8hV+neBiFXAQ9+3sKiQe/sgumHlL6HDg0AQ8/l16xX/5jJvfxueqTW5CWbzd0MjnlfHZw==", + "dependencies": { + "@octokit/oauth-authorization-url": "^5.0.0", + "@octokit/request": "^6.2.3", + "@octokit/request-error": "^3.0.3", + "@octokit/types": "^9.0.0", + "btoa-lite": "^1.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@octokit/oauth-methods/node_modules/@octokit/endpoint": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.6.tgz", + "integrity": "sha512-5L4fseVRUsDFGR00tMWD/Trdeeihn999rTMGRMC1G/Ldi1uWlWJzI98H4Iak5DB/RVvQuyMYKqSK/R6mbSOQyg==", + "dependencies": { + "@octokit/types": "^9.0.0", + "is-plain-object": "^5.0.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@octokit/oauth-methods/node_modules/@octokit/openapi-types": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-18.0.0.tgz", + "integrity": "sha512-V8GImKs3TeQRxRtXFpG2wl19V7444NIOTDF24AWuIbmNaNYOQMWRbjcGDXV5B+0n887fgDcuMNOmlul+k+oJtw==" + }, + "node_modules/@octokit/oauth-methods/node_modules/@octokit/request": { + "version": "6.2.8", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-6.2.8.tgz", + "integrity": "sha512-ow4+pkVQ+6XVVsekSYBzJC0VTVvh/FCTUUgTsboGq+DTeWdyIFV8WSCdo0RIxk6wSkBTHqIK1mYuY7nOBXOchw==", + "dependencies": { + "@octokit/endpoint": "^7.0.0", + "@octokit/request-error": "^3.0.0", + "@octokit/types": "^9.0.0", + "is-plain-object": "^5.0.0", + "node-fetch": "^2.6.7", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@octokit/oauth-methods/node_modules/@octokit/request-error": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.3.tgz", + "integrity": "sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ==", + "dependencies": { + "@octokit/types": "^9.0.0", + "deprecation": "^2.0.0", + "once": "^1.4.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@octokit/oauth-methods/node_modules/@octokit/types": { + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-9.3.2.tgz", + "integrity": "sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA==", + "dependencies": { + "@octokit/openapi-types": "^18.0.0" + } + }, + "node_modules/@octokit/openapi-types": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-14.0.0.tgz", + "integrity": "sha512-HNWisMYlR8VCnNurDU6os2ikx0s0VyEjDYHNS/h4cgb8DeOxQ0n72HyinUtdDVxJhFy3FWLGl0DJhfEWk3P5Iw==" + }, + "node_modules/@octokit/plugin-enterprise-compatibility": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-enterprise-compatibility/-/plugin-enterprise-compatibility-1.3.0.tgz", + "integrity": "sha512-h34sMGdEOER/OKrZJ55v26ntdHb9OPfR1fwOx6Q4qYyyhWA104o11h9tFxnS/l41gED6WEI41Vu2G2zHDVC5lQ==", + "dependencies": { + "@octokit/request-error": "^2.1.0", + "@octokit/types": "^6.0.3" + } + }, + "node_modules/@octokit/plugin-enterprise-compatibility/node_modules/@octokit/openapi-types": { + "version": "12.11.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.11.0.tgz", + "integrity": "sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==" + }, + "node_modules/@octokit/plugin-enterprise-compatibility/node_modules/@octokit/types": { + "version": "6.41.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.41.0.tgz", + "integrity": "sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==", + "dependencies": { + "@octokit/openapi-types": "^12.11.0" + } + }, + "node_modules/@octokit/plugin-paginate-rest": { + "version": "2.21.3", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.21.3.tgz", + "integrity": "sha512-aCZTEf0y2h3OLbrgKkrfFdjRL6eSOo8komneVQJnYecAxIej7Bafor2xhuDJOIFau4pk0i/P28/XgtbyPF0ZHw==", + "dependencies": { + "@octokit/types": "^6.40.0" + }, + "peerDependencies": { + "@octokit/core": ">=2" + } + }, + "node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/openapi-types": { + "version": "12.11.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.11.0.tgz", + "integrity": "sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==" + }, + "node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types": { + "version": "6.41.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.41.0.tgz", + "integrity": "sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==", + "dependencies": { + "@octokit/openapi-types": "^12.11.0" + } + }, + "node_modules/@octokit/plugin-rest-endpoint-methods": { + "version": "5.16.2", + "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.16.2.tgz", + "integrity": "sha512-8QFz29Fg5jDuTPXVtey05BLm7OB+M8fnvE64RNegzX7U+5NUXcOcnpTIK0YfSHBg8gYd0oxIq3IZTe9SfPZiRw==", + "dependencies": { + "@octokit/types": "^6.39.0", + "deprecation": "^2.3.1" + }, + "peerDependencies": { + "@octokit/core": ">=3" + } + }, + "node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/openapi-types": { + "version": "12.11.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.11.0.tgz", + "integrity": "sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==" + }, + "node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types": { + "version": "6.41.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.41.0.tgz", + "integrity": "sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==", + "dependencies": { + "@octokit/openapi-types": "^12.11.0" + } + }, + "node_modules/@octokit/plugin-retry": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/@octokit/plugin-retry/-/plugin-retry-3.0.9.tgz", + "integrity": "sha512-r+fArdP5+TG6l1Rv/C9hVoty6tldw6cE2pRHNGmFPdyfrc696R6JjrQ3d7HdVqGwuzfyrcaLAKD7K8TX8aehUQ==", + "dependencies": { + "@octokit/types": "^6.0.3", + "bottleneck": "^2.15.3" + } + }, + "node_modules/@octokit/plugin-retry/node_modules/@octokit/openapi-types": { + "version": "12.11.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.11.0.tgz", + "integrity": "sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==" + }, + "node_modules/@octokit/plugin-retry/node_modules/@octokit/types": { + "version": "6.41.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.41.0.tgz", + "integrity": "sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==", + "dependencies": { + "@octokit/openapi-types": "^12.11.0" + } + }, + "node_modules/@octokit/plugin-throttling": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-throttling/-/plugin-throttling-3.7.0.tgz", + "integrity": "sha512-qrKT1Yl/KuwGSC6/oHpLBot3ooC9rq0/ryDYBCpkRtoj+R8T47xTMDT6Tk2CxWopFota/8Pi/2SqArqwC0JPow==", + "dependencies": { + "@octokit/types": "^6.0.1", + "bottleneck": "^2.15.3" + }, + "peerDependencies": { + "@octokit/core": "^3.5.0" + } + }, + "node_modules/@octokit/plugin-throttling/node_modules/@octokit/openapi-types": { + "version": "12.11.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.11.0.tgz", + "integrity": "sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==" + }, + "node_modules/@octokit/plugin-throttling/node_modules/@octokit/types": { + "version": "6.41.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.41.0.tgz", + "integrity": "sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==", + "dependencies": { + "@octokit/openapi-types": "^12.11.0" + } + }, + "node_modules/@octokit/request": { + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.6.3.tgz", + "integrity": "sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==", + "dependencies": { + "@octokit/endpoint": "^6.0.1", + "@octokit/request-error": "^2.1.0", + "@octokit/types": "^6.16.1", + "is-plain-object": "^5.0.0", + "node-fetch": "^2.6.7", + "universal-user-agent": "^6.0.0" + } + }, + "node_modules/@octokit/request-error": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.1.0.tgz", + "integrity": "sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==", + "dependencies": { + "@octokit/types": "^6.0.3", + "deprecation": "^2.0.0", + "once": "^1.4.0" + } + }, + "node_modules/@octokit/request-error/node_modules/@octokit/openapi-types": { + "version": "12.11.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.11.0.tgz", + "integrity": "sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==" + }, + "node_modules/@octokit/request-error/node_modules/@octokit/types": { + "version": "6.41.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.41.0.tgz", + "integrity": "sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==", + "dependencies": { + "@octokit/openapi-types": "^12.11.0" + } + }, + "node_modules/@octokit/request/node_modules/@octokit/openapi-types": { + "version": "12.11.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.11.0.tgz", + "integrity": "sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==" + }, + "node_modules/@octokit/request/node_modules/@octokit/types": { + "version": "6.41.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.41.0.tgz", + "integrity": "sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==", + "dependencies": { + "@octokit/openapi-types": "^12.11.0" + } + }, + "node_modules/@octokit/types": { + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-8.2.1.tgz", + "integrity": "sha512-8oWMUji8be66q2B9PmEIUyQm00VPDPun07umUWSaCwxmeaquFBro4Hcc3ruVoDo3zkQyZBlRvhIMEYS3pBhanw==", + "dependencies": { + "@octokit/openapi-types": "^14.0.0" + } + }, + "node_modules/@octokit/webhooks": { + "version": "9.26.0", + "resolved": "https://registry.npmjs.org/@octokit/webhooks/-/webhooks-9.26.0.tgz", + "integrity": "sha512-foZlsgrTDwAmD5j2Czn6ji10lbWjGDVsUxTIydjG9KTkAWKJrFapXJgO5SbGxRwfPd3OJdhK3nA2YPqVhxLXqA==", + "dependencies": { + "@octokit/request-error": "^2.0.2", + "@octokit/webhooks-methods": "^2.0.0", + "@octokit/webhooks-types": "5.8.0", + "aggregate-error": "^3.1.0" + } + }, + "node_modules/@octokit/webhooks-methods": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@octokit/webhooks-methods/-/webhooks-methods-2.0.0.tgz", + "integrity": "sha512-35cfQ4YWlnZnmZKmIxlGPUPLtbkF8lr/A/1Sk1eC0ddLMwQN06dOuLc+dI3YLQS+T+MoNt3DIQ0NynwgKPilig==" + }, + "node_modules/@octokit/webhooks-types": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@octokit/webhooks-types/-/webhooks-types-5.8.0.tgz", + "integrity": "sha512-8adktjIb76A7viIdayQSFuBEwOzwhDC+9yxZpKNHjfzrlostHCw0/N7JWpWMObfElwvJMk2fY2l1noENCk9wmw==" + }, + "node_modules/@probot/get-private-key": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@probot/get-private-key/-/get-private-key-1.1.1.tgz", + "integrity": "sha512-hOmBNSAhSZc6PaNkTvj6CO9R5J67ODJ+w5XQlDW9w/6mtcpHWK4L+PZcW0YwVM7PpetLZjN6rsKQIR9yqIaWlA==", + "dependencies": { + "@types/is-base64": "^1.1.0", + "is-base64": "^1.1.0" + } + }, + "node_modules/@probot/octokit-plugin-config": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/@probot/octokit-plugin-config/-/octokit-plugin-config-1.1.6.tgz", + "integrity": "sha512-L29wmnFvilzSfWn9tUgItxdLv0LJh2ICjma3FmLr80Spu3wZ9nHyRrKMo9R5/K2m7VuWmgoKnkgRt2zPzAQBEQ==", + "dependencies": { + "@types/js-yaml": "^4.0.5", + "js-yaml": "^4.1.0" + }, + "peerDependencies": { + "@octokit/core": ">=3" + } + }, + "node_modules/@probot/octokit-plugin-config/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==" + }, + "node_modules/@probot/octokit-plugin-config/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==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@probot/pino": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@probot/pino/-/pino-2.3.5.tgz", + "integrity": "sha512-IiyiNZonMw1dHC4EAdD55y5owV733d9Gll/IKsrLikB7EJ54+eMCOtL/qo+OmgWN9XV3NTDfziEQF2og/OBKog==", + "dependencies": { + "@sentry/node": "^6.0.0", + "pino-pretty": "^6.0.0", + "pump": "^3.0.0", + "readable-stream": "^3.6.0", + "split2": "^4.0.0" + }, + "bin": { + "pino-probot": "cli.js" + } + }, + "node_modules/@sentry/core": { + "version": "6.19.7", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-6.19.7.tgz", + "integrity": "sha512-tOfZ/umqB2AcHPGbIrsFLcvApdTm9ggpi/kQZFkej7kMphjT+SGBiQfYtjyg9jcRW+ilAR4JXC9BGKsdEQ+8Vw==", + "dependencies": { + "@sentry/hub": "6.19.7", + "@sentry/minimal": "6.19.7", + "@sentry/types": "6.19.7", + "@sentry/utils": "6.19.7", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/hub": { + "version": "6.19.7", + "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-6.19.7.tgz", + "integrity": "sha512-y3OtbYFAqKHCWezF0EGGr5lcyI2KbaXW2Ik7Xp8Mu9TxbSTuwTe4rTntwg8ngPjUQU3SUHzgjqVB8qjiGqFXCA==", + "dependencies": { + "@sentry/types": "6.19.7", + "@sentry/utils": "6.19.7", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/minimal": { + "version": "6.19.7", + "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-6.19.7.tgz", + "integrity": "sha512-wcYmSJOdvk6VAPx8IcmZgN08XTXRwRtB1aOLZm+MVHjIZIhHoBGZJYTVQS/BWjldsamj2cX3YGbGXNunaCfYJQ==", + "dependencies": { + "@sentry/hub": "6.19.7", + "@sentry/types": "6.19.7", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/node": { + "version": "6.19.7", + "resolved": "https://registry.npmjs.org/@sentry/node/-/node-6.19.7.tgz", + "integrity": "sha512-gtmRC4dAXKODMpHXKfrkfvyBL3cI8y64vEi3fDD046uqYcrWdgoQsffuBbxMAizc6Ez1ia+f0Flue6p15Qaltg==", + "dependencies": { + "@sentry/core": "6.19.7", + "@sentry/hub": "6.19.7", + "@sentry/types": "6.19.7", + "@sentry/utils": "6.19.7", + "cookie": "^0.4.1", + "https-proxy-agent": "^5.0.0", + "lru_map": "^0.3.3", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/types": { + "version": "6.19.7", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-6.19.7.tgz", + "integrity": "sha512-jH84pDYE+hHIbVnab3Hr+ZXr1v8QABfhx39KknxqKWr2l0oEItzepV0URvbEhB446lk/S/59230dlUUIBGsXbg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/utils": { + "version": "6.19.7", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-6.19.7.tgz", + "integrity": "sha512-z95ECmE3i9pbWoXQrD/7PgkBAzJYR+iXtPuTkpBjDKs86O3mT+PXOT3BAn79w2wkn7/i3vOGD2xVr1uiMl26dA==", + "dependencies": { + "@sentry/types": "6.19.7", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sinclair/typebox": { + "version": "0.25.24", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.25.24.tgz", + "integrity": "sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==", + "dev": true + }, + "node_modules/@sinonjs/commons": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", + "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", + "dev": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^3.0.0" + } + }, + "node_modules/@types/babel__core": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.1.tgz", + "integrity": "sha512-aACu/U/omhdk15O4Nfb+fHgH/z3QsfQzpnvRZhYhThms83ZnAOZz7zZAWO7mn2yyNQaA4xTO8GLK3uqFU4bYYw==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", + "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", + "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.1.tgz", + "integrity": "sha512-MitHFXnhtgwsGZWtT68URpOvLN4EREih1u3QtQiN4VdAxWKRVvGCSvw/Qth0M0Qq3pJpnGOu5JaM/ydK7OGbqg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/btoa-lite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/btoa-lite/-/btoa-lite-1.0.0.tgz", + "integrity": "sha512-wJsiX1tosQ+J5+bY5LrSahHxr2wT+uME5UDwdN1kg4frt40euqA+wzECkmq4t5QbveHiJepfdThgQrPw6KiSlg==" + }, + "node_modules/@types/connect": { + "version": "3.4.35", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/express": { + "version": "4.17.17", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.17.tgz", + "integrity": "sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==", + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.17.35", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.35.tgz", + "integrity": "sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg==", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz", + "integrity": "sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/ioredis": { + "version": "4.28.10", + "resolved": "https://registry.npmjs.org/@types/ioredis/-/ioredis-4.28.10.tgz", + "integrity": "sha512-69LyhUgrXdgcNDv7ogs1qXZomnfOEnSmrmMFqKgt1XMJxmoOSG/u3wYy13yACIfKuMJ8IhKgHafDO3sx19zVQQ==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/is-base64": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@types/is-base64/-/is-base64-1.1.1.tgz", + "integrity": "sha512-JgnGhP+MeSHEQmvxcobcwPEP4Ew56voiq9/0hmP/41lyQ/3gBw/ZCIRy2v+QkEOdeCl58lRcrf6+Y6WMlJGETA==" + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", + "dev": true + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/jest": { + "version": "29.5.2", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.2.tgz", + "integrity": "sha512-mSoZVJF5YzGVCk+FsDxzDuH7s+SCkzrgKZzf0Z0T2WudhBUPoF6ktoTPC4R0ZoCPCV5xUvuU6ias5NvxcBcMMg==", + "dev": true, + "dependencies": { + "expect": "^29.0.0", + "pretty-format": "^29.0.0" + } + }, + "node_modules/@types/js-yaml": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-4.0.5.tgz", + "integrity": "sha512-FhpRzf927MNQdRZP0J5DLIdTXhjLYzeUTmLAu69mnVksLH9CJY3IuSeEgbKUki7GQZm0WqDkGzyxju2EZGD2wA==" + }, + "node_modules/@types/jsonwebtoken": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz", + "integrity": "sha512-drE6uz7QBKq1fYqqoFKTDRdFCPHd5TCub75BM+D+cMx7NU9hUz7SESLfC2fSCXVFMO5Yj8sOWHuGqPgjc+fz0Q==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/mime": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", + "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==" + }, + "node_modules/@types/node": { + "version": "18.16.18", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.16.18.tgz", + "integrity": "sha512-/aNaQZD0+iSBAGnvvN2Cx92HqE5sZCPZtx2TsK+4nvV23fFe09jVDvpArXr2j9DnYlzuU9WuoykDDc6wqvpNcw==" + }, + "node_modules/@types/pino": { + "version": "6.3.12", + "resolved": "https://registry.npmjs.org/@types/pino/-/pino-6.3.12.tgz", + "integrity": "sha512-dsLRTq8/4UtVSpJgl9aeqHvbh6pzdmjYD3C092SYgLD2TyoCqHpTJk6vp8DvCTGGc7iowZ2MoiYiVUUCcu7muw==", + "dependencies": { + "@types/node": "*", + "@types/pino-pretty": "*", + "@types/pino-std-serializers": "*", + "sonic-boom": "^2.1.0" + } + }, + "node_modules/@types/pino-http": { + "version": "5.8.1", + "resolved": "https://registry.npmjs.org/@types/pino-http/-/pino-http-5.8.1.tgz", + "integrity": "sha512-A9MW6VCnx5ii7s+Fs5aFIw+aSZcBCpsZ/atpxamu8tTsvWFacxSf2Hrn1Ohn1jkVRB/LiPGOapRXcFawDBnDnA==", + "dependencies": { + "@types/pino": "6.3" + } + }, + "node_modules/@types/pino-pretty": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/pino-pretty/-/pino-pretty-5.0.0.tgz", + "integrity": "sha512-N1uzqSzioqz8R3AkDbSJwcfDWeI3YMPNapSQQhnB2ISU4NYgUIcAh+hYT5ygqBM+klX4htpEhXMmoJv3J7GrdA==", + "deprecated": "This is a stub types definition. pino-pretty provides its own type definitions, so you do not need this installed.", + "dependencies": { + "pino-pretty": "*" + } + }, + "node_modules/@types/pino-std-serializers": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/pino-std-serializers/-/pino-std-serializers-4.0.0.tgz", + "integrity": "sha512-gXfUZx2xIBbFYozGms53fT0nvkacx/+62c8iTxrEqH5PkIGAQvDbXg2774VWOycMPbqn5YJBQ3BMsg4Li3dWbg==", + "deprecated": "This is a stub types definition. pino-std-serializers provides its own type definitions, so you do not need this installed.", + "dependencies": { + "pino-std-serializers": "*" + } + }, + "node_modules/@types/prettier": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz", + "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==", + "dev": true + }, + "node_modules/@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" + }, + "node_modules/@types/range-parser": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", + "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" + }, + "node_modules/@types/send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.1.tgz", + "integrity": "sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==", + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.1.tgz", + "integrity": "sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ==", + "dependencies": { + "@types/mime": "*", + "@types/node": "*" + } + }, + "node_modules/@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "dev": true + }, + "node_modules/@types/yargs": { + "version": "17.0.24", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.24.tgz", + "integrity": "sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==", + "dev": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", + "dev": true + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.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/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==", + "dev": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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/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/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/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/args": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/args/-/args-5.0.3.tgz", + "integrity": "sha512-h6k/zfFgusnv3i5TU08KQkVKuCPBtL/PWQbWkHUxvJrZ2nAyeaUupneemcrgn1xmqxPQsPIzwkUhOpoqPDRZuA==", + "dependencies": { + "camelcase": "5.0.0", + "chalk": "2.4.2", + "leven": "2.1.0", + "mri": "1.1.4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/args/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/args/node_modules/camelcase": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", + "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/args/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/args/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/args/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/args/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/args/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/args/node_modules/leven": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", + "integrity": "sha512-nvVPLpIHUxCUoRLrFqTgSxXJ614d8AgQoWl7zPe/2VadE8+1dpU3LBhowRuBAcuwruWtOdD8oYC9jDNJjXDPyA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/args/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/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "dev": true + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, + "node_modules/atomic-sleep": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", + "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/babel-jest": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.5.0.tgz", + "integrity": "sha512-mA4eCDh5mSo2EcA9xQjVTpmbbNk32Zb3Q3QFQsNhaK56Q+yoXowzFodLux30HRgyOho5rsQ6B0P9QpMkvvnJ0Q==", + "dev": true, + "dependencies": { + "@jest/transform": "^29.5.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.5.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.5.0.tgz", + "integrity": "sha512-zSuuuAlTMT4mzLj2nPnUm6fsE6270vdOfnpbJ+RmruU75UhLFvL0N2NgI7xpeS7NaB6hGqmd5pVpGTDYvi4Q3w==", + "dev": true, + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@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-top-level-await": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-jest": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.5.0.tgz", + "integrity": "sha512-JOMloxOqdiBSxMAzjRaH023/vvcaSaec49zvg+2LmNsktC7ei39LTJGw02J+9uUtTZUq6xbLyJ4dxe9sSmIuAg==", + "dev": true, + "dependencies": { + "babel-plugin-jest-hoist": "^29.5.0", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.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==" + }, + "node_modules/basic-auth": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", + "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", + "dev": true, + "dependencies": { + "safe-buffer": "5.1.2" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/basic-auth/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/before-after-hook": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz", + "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==" + }, + "node_modules/body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/bottleneck": { + "version": "2.19.5", + "resolved": "https://registry.npmjs.org/bottleneck/-/bottleneck-2.19.5.tgz", + "integrity": "sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==" + }, + "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/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.21.9", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.9.tgz", + "integrity": "sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==", + "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.30001503", + "electron-to-chromium": "^1.4.431", + "node-releases": "^2.0.12", + "update-browserslist-db": "^1.0.11" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bs-logger": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", + "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", + "dev": true, + "dependencies": { + "fast-json-stable-stringify": "2.x" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/btoa-lite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/btoa-lite/-/btoa-lite-1.0.0.tgz", + "integrity": "sha512-gvW7InbIyF8AicrqWoptdW08pUxuhq8BEgowNajy9RhiE86fmGAGl+bLKo6oB8QP0CkqHLowfN0oJdKC/J6LbA==" + }, + "node_modules/buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==" + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "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/caniuse-lite": { + "version": "1.0.30001505", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001505.tgz", + "integrity": "sha512-jaAOR5zVtxHfL0NjZyflVTtXm3D3J9P15zSJ7HmQF8dSKGA6tqzQq+0ZI3xkjyQj46I4/M0K2GbMpcAFOcbr3A==", + "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/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/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/ci-info": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", + "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", + "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==", + "dev": true + }, + "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/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/cluster-key-slot": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz", + "integrity": "sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", + "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", + "dev": true + }, + "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/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/colorette": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", + "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==" + }, + "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==", + "dev": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "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/component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "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/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "engines": { + "node": ">= 0.6" + } + }, + "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/cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "node_modules/cookiejar": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.4.tgz", + "integrity": "sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==", + "dev": true + }, + "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==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/dateformat": { + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz", + "integrity": "sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==", + "engines": { + "node": "*" + } + }, + "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/dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", + "dev": true + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/denque": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/denque/-/denque-1.5.1.tgz", + "integrity": "sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw==", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/deprecation": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", + "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==" + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/dezalgo": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz", + "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==", + "dev": true, + "dependencies": { + "asap": "^2.0.0", + "wrappy": "1" + } + }, + "node_modules/diff-sequences": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.4.3.tgz", + "integrity": "sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/dotenv": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz", + "integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==", + "engines": { + "node": ">=10" + } + }, + "node_modules/ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "node_modules/electron-to-chromium": { + "version": "1.4.435", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.435.tgz", + "integrity": "sha512-B0CBWVFhvoQCW/XtjRzgrmqcgVWg6RXOEM/dK59+wFV93BFGR6AeNKc4OyhM+T3IhJaOOG8o/V+33Y2mwJWtzw==", + "dev": true + }, + "node_modules/emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "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/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } + }, + "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/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "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==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eventsource": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-2.0.2.tgz", + "integrity": "sha512-IzUmBGPR3+oUG9dUeXynyNmf91/3zUSJg1lCktzKw47OXuhco54U3r9B7O4XX+Rb1Itm9OZ2b0RkTs10bICOxA==", + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expect": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.5.0.tgz", + "integrity": "sha512-yM7xqUrCO2JdpFo4XpM82t+PJBFybdqoQuJLDGeDX2ij8NZzqRHyu3Hp188/JX7SWqud+7t4MUdvcgGBICMHZg==", + "dev": true, + "dependencies": { + "@jest/expect-utils": "^29.5.0", + "jest-get-type": "^29.4.3", + "jest-matcher-utils": "^29.5.0", + "jest-message-util": "^29.5.0", + "jest-util": "^29.5.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express-handlebars": { + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/express-handlebars/-/express-handlebars-6.0.7.tgz", + "integrity": "sha512-iYeMFpc/hMD+E6FNAZA5fgWeXnXr4rslOSPkeEV6TwdmpJ5lEXuWX0u9vFYs31P2MURctQq2batR09oeNj0LIg==", + "dependencies": { + "glob": "^8.1.0", + "graceful-fs": "^4.2.10", + "handlebars": "^4.7.7" + }, + "engines": { + "node": ">=v12.22.9" + } + }, + "node_modules/express-handlebars/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==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/express-handlebars/node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/express-handlebars/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/express/node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "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 + }, + "node_modules/fast-redact": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.2.0.tgz", + "integrity": "sha512-zaTadChr+NekyzallAMXATXLOR8MNx3zqpZ0MUF2aGf4EathnG0f32VLODNlY8IuGY3HoRO2L6/6fSzNsLaHIw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/fast-safe-stringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" + }, + "node_modules/fast-url-parser": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz", + "integrity": "sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==", + "dependencies": { + "punycode": "^1.3.2" + } + }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "dependencies": { + "bser": "2.1.1" + } + }, + "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/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "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/flatstr": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/flatstr/-/flatstr-1.0.12.tgz", + "integrity": "sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw==" + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/formidable": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-2.1.2.tgz", + "integrity": "sha512-CM3GuJ57US06mlpQ47YcunuUZ9jpm8Vx+P2CGt2j7HpgkKZO/DJYQ0Bobim8G6PFQmK5lOqOOdUXboU+h73A4g==", + "dev": true, + "dependencies": { + "dezalgo": "^1.0.4", + "hexoid": "^1.0.0", + "once": "^1.4.0", + "qs": "^6.11.0" + }, + "funding": { + "url": "https://ko-fi.com/tunnckoCore/commissions" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "engines": { + "node": ">= 0.6" + } + }, + "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==" + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "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.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" + }, + "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": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "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/handlebars": { + "version": "4.7.7", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", + "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.0", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "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/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "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/hexoid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hexoid/-/hexoid-1.0.0.tgz", + "integrity": "sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "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-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "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==", + "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==" + }, + "node_modules/ioredis": { + "version": "4.28.5", + "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-4.28.5.tgz", + "integrity": "sha512-3GYo0GJtLqgNXj4YhrisLaNNvWSNwSS2wS4OELGfGxH8I69+XfNdnmV1AyN+ZqMh0i7eX+SWjrwFKDBDgfBC1A==", + "dependencies": { + "cluster-key-slot": "^1.1.0", + "debug": "^4.3.1", + "denque": "^1.1.0", + "lodash.defaults": "^4.2.0", + "lodash.flatten": "^4.4.0", + "lodash.isarguments": "^3.1.0", + "p-map": "^2.1.0", + "redis-commands": "1.7.0", + "redis-errors": "^1.2.0", + "redis-parser": "^3.0.0", + "standard-as-callback": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/ioredis" + } + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + }, + "node_modules/is-base64": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-base64/-/is-base64-1.1.0.tgz", + "integrity": "sha512-Nlhg7Z2dVC4/PTvIFkgVVNvPHSO2eR/Yd0XzhGiXCXEvWnptXlXa/clQ8aePPiMuxEGcWfzWbGw2Fe3d+Y3v1g==", + "bin": { + "is_base64": "bin/is-base64", + "is-base64": "bin/is-base64" + } + }, + "node_modules/is-core-module": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", + "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "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-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "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/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.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.5", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", + "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.5.0.tgz", + "integrity": "sha512-juMg3he2uru1QoXX078zTa7pO85QyB9xajZc6bU+d9yEGwrKX6+vGmJQ3UdVZsvTEUARIdObzH68QItim6OSSQ==", + "dev": true, + "dependencies": { + "@jest/core": "^29.5.0", + "@jest/types": "^29.5.0", + "import-local": "^3.0.2", + "jest-cli": "^29.5.0" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-changed-files": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.5.0.tgz", + "integrity": "sha512-IFG34IUMUaNBIxjQXF/iu7g6EcdMrGRRxaUSw92I/2g2YC6vCdTltl4nHvt7Ci5nSJwXIkCu8Ka1DKF+X7Z1Ag==", + "dev": true, + "dependencies": { + "execa": "^5.0.0", + "p-limit": "^3.1.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-circus": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.5.0.tgz", + "integrity": "sha512-gq/ongqeQKAplVxqJmbeUOJJKkW3dDNPY8PjhJ5G0lBRvu0e3EWGxGy5cI4LAGA7gV2UHCtWBI4EMXK8c9nQKA==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.5.0", + "@jest/expect": "^29.5.0", + "@jest/test-result": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.5.0", + "jest-matcher-utils": "^29.5.0", + "jest-message-util": "^29.5.0", + "jest-runtime": "^29.5.0", + "jest-snapshot": "^29.5.0", + "jest-util": "^29.5.0", + "p-limit": "^3.1.0", + "pretty-format": "^29.5.0", + "pure-rand": "^6.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-cli": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.5.0.tgz", + "integrity": "sha512-L1KcP1l4HtfwdxXNFCL5bmUbLQiKrakMUriBEcc1Vfz6gx31ORKdreuWvmQVBit+1ss9NNR3yxjwfwzZNdQXJw==", + "dev": true, + "dependencies": { + "@jest/core": "^29.5.0", + "@jest/test-result": "^29.5.0", + "@jest/types": "^29.5.0", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^29.5.0", + "jest-util": "^29.5.0", + "jest-validate": "^29.5.0", + "prompts": "^2.0.1", + "yargs": "^17.3.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-cli/node_modules/jest-config": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.5.0.tgz", + "integrity": "sha512-kvDUKBnNJPNBmFFOhDbm59iu1Fii1Q6SxyhXfvylq3UTHbg6o7j/g8k2dZyXWLvfdKB1vAPxNZnMgtKJcmu3kA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.5.0", + "@jest/types": "^29.5.0", + "babel-jest": "^29.5.0", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.5.0", + "jest-environment-node": "^29.5.0", + "jest-get-type": "^29.4.3", + "jest-regex-util": "^29.4.3", + "jest-resolve": "^29.5.0", + "jest-runner": "^29.5.0", + "jest-util": "^29.5.0", + "jest-validate": "^29.5.0", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.5.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-cli/node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-diff": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.5.0.tgz", + "integrity": "sha512-LtxijLLZBduXnHSniy0WMdaHjmQnt3g5sa16W4p0HqukYTTsyTW3GD1q41TyGl5YFXj/5B2U6dlh5FM1LIMgxw==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^29.4.3", + "jest-get-type": "^29.4.3", + "pretty-format": "^29.5.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-docblock": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.4.3.tgz", + "integrity": "sha512-fzdTftThczeSD9nZ3fzA/4KkHtnmllawWrXO69vtI+L9WjEIuXWs4AmyME7lN5hU7dB0sHhuPfcKofRsUb/2Fg==", + "dev": true, + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-each": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.5.0.tgz", + "integrity": "sha512-HM5kIJ1BTnVt+DQZ2ALp3rzXEl+g726csObrW/jpEGl+CDSSQpOJJX2KE/vEg8cxcMXdyEPu6U4QX5eruQv5hA==", + "dev": true, + "dependencies": { + "@jest/types": "^29.5.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.4.3", + "jest-util": "^29.5.0", + "pretty-format": "^29.5.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-environment-node": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.5.0.tgz", + "integrity": "sha512-ExxuIK/+yQ+6PRGaHkKewYtg6hto2uGCgvKdb2nfJfKXgZ17DfXjvbZ+jA1Qt9A8EQSfPnt5FKIfnOO3u1h9qw==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.5.0", + "@jest/fake-timers": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/node": "*", + "jest-mock": "^29.5.0", + "jest-util": "^29.5.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.4.3.tgz", + "integrity": "sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.5.0.tgz", + "integrity": "sha512-IspOPnnBro8YfVYSw6yDRKh/TiCdRngjxeacCps1cQ9cgVN6+10JUcuJ1EabrgYLOATsIAigxA0rLR9x/YlrSA==", + "dev": true, + "dependencies": { + "@jest/types": "^29.5.0", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.4.3", + "jest-util": "^29.5.0", + "jest-worker": "^29.5.0", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-leak-detector": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.5.0.tgz", + "integrity": "sha512-u9YdeeVnghBUtpN5mVxjID7KbkKE1QU4f6uUwuxiY0vYRi9BUCLKlPEZfDGR67ofdFmDz9oPAy2G92Ujrntmow==", + "dev": true, + "dependencies": { + "jest-get-type": "^29.4.3", + "pretty-format": "^29.5.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.5.0.tgz", + "integrity": "sha512-lecRtgm/rjIK0CQ7LPQwzCs2VwW6WAahA55YBuI+xqmhm7LAaxokSB8C97yJeYyT+HvQkH741StzpU41wohhWw==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^29.5.0", + "jest-get-type": "^29.4.3", + "pretty-format": "^29.5.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-message-util": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.5.0.tgz", + "integrity": "sha512-Kijeg9Dag6CKtIDA7O21zNTACqD5MD/8HfIV8pdD94vFyFuer52SigdC3IQMhab3vACxXMiFk+yMHNdbqtyTGA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.5.0", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.5.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-mock": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.5.0.tgz", + "integrity": "sha512-GqOzvdWDE4fAV2bWQLQCkujxYWL7RxjCnj71b5VhDAGOevB3qj3Ovg26A5NI84ZpODxyzaozXLOh2NCgkbvyaw==", + "dev": true, + "dependencies": { + "@jest/types": "^29.5.0", + "@types/node": "*", + "jest-util": "^29.5.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "dev": true, + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.4.3.tgz", + "integrity": "sha512-O4FglZaMmWXbGHSQInfXewIsd1LMn9p3ZXB/6r4FOkyhX2/iP/soMG98jGvk/A3HAN78+5VWcBGO0BJAPRh4kg==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.5.0.tgz", + "integrity": "sha512-1TzxJ37FQq7J10jPtQjcc+MkCkE3GBpBecsSUWJ0qZNJpmg6m0D9/7II03yJulm3H/fvVjgqLh/k2eYg+ui52w==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.5.0", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.5.0", + "jest-validate": "^29.5.0", + "resolve": "^1.20.0", + "resolve.exports": "^2.0.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.5.0.tgz", + "integrity": "sha512-sjV3GFr0hDJMBpYeUuGduP+YeCRbd7S/ck6IvL3kQ9cpySYKqcqhdLLC2rFwrcL7tz5vYibomBrsFYWkIGGjOg==", + "dev": true, + "dependencies": { + "jest-regex-util": "^29.4.3", + "jest-snapshot": "^29.5.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runner": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.5.0.tgz", + "integrity": "sha512-m7b6ypERhFghJsslMLhydaXBiLf7+jXy8FwGRHO3BGV1mcQpPbwiqiKUR2zU2NJuNeMenJmlFZCsIqzJCTeGLQ==", + "dev": true, + "dependencies": { + "@jest/console": "^29.5.0", + "@jest/environment": "^29.5.0", + "@jest/test-result": "^29.5.0", + "@jest/transform": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.4.3", + "jest-environment-node": "^29.5.0", + "jest-haste-map": "^29.5.0", + "jest-leak-detector": "^29.5.0", + "jest-message-util": "^29.5.0", + "jest-resolve": "^29.5.0", + "jest-runtime": "^29.5.0", + "jest-util": "^29.5.0", + "jest-watcher": "^29.5.0", + "jest-worker": "^29.5.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runtime": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.5.0.tgz", + "integrity": "sha512-1Hr6Hh7bAgXQP+pln3homOiEZtCDZFqwmle7Ew2j8OlbkIu6uE3Y/etJQG8MLQs3Zy90xrp2C0BRrtPHG4zryw==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.5.0", + "@jest/fake-timers": "^29.5.0", + "@jest/globals": "^29.5.0", + "@jest/source-map": "^29.4.3", + "@jest/test-result": "^29.5.0", + "@jest/transform": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/node": "*", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.5.0", + "jest-message-util": "^29.5.0", + "jest-mock": "^29.5.0", + "jest-regex-util": "^29.4.3", + "jest-resolve": "^29.5.0", + "jest-snapshot": "^29.5.0", + "jest-util": "^29.5.0", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-snapshot": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.5.0.tgz", + "integrity": "sha512-x7Wolra5V0tt3wRs3/ts3S6ciSQVypgGQlJpz2rsdQYoUKxMxPNaoHMGJN6qAuPJqS+2iQ1ZUn5kl7HCyls84g==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.5.0", + "@jest/transform": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/babel__traverse": "^7.0.6", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^29.5.0", + "graceful-fs": "^4.2.9", + "jest-diff": "^29.5.0", + "jest-get-type": "^29.4.3", + "jest-matcher-utils": "^29.5.0", + "jest-message-util": "^29.5.0", + "jest-util": "^29.5.0", + "natural-compare": "^1.4.0", + "pretty-format": "^29.5.0", + "semver": "^7.3.5" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-snapshot/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==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-snapshot/node_modules/semver": { + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.2.tgz", + "integrity": "sha512-SoftuTROv/cRjCze/scjGyiDtcUyxw1rgYQSZY7XTmtR5hX+dm76iDbTH8TkLPHCQmlbQVSSbNZCPM2hb0knnQ==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-snapshot/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/jest-util": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.5.0.tgz", + "integrity": "sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ==", + "dev": true, + "dependencies": { + "@jest/types": "^29.5.0", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-validate": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.5.0.tgz", + "integrity": "sha512-pC26etNIi+y3HV8A+tUGr/lph9B18GnzSRAkPaaZJIE1eFdiYm6/CewuiJQ8/RlfHd1u/8Ioi8/sJ+CmbA+zAQ==", + "dev": true, + "dependencies": { + "@jest/types": "^29.5.0", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.4.3", + "leven": "^3.1.0", + "pretty-format": "^29.5.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watcher": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.5.0.tgz", + "integrity": "sha512-KmTojKcapuqYrKDpRwfqcQ3zjMlwu27SYext9pt4GlF5FUgB+7XE1mcCnSm6a4uUpFyQIkb6ZhzZvHl+jiBCiA==", + "dev": true, + "dependencies": { + "@jest/test-result": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "jest-util": "^29.5.0", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.5.0.tgz", + "integrity": "sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA==", + "dev": true, + "dependencies": { + "@types/node": "*", + "jest-util": "^29.5.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "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, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/jmespath": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz", + "integrity": "sha512-+kHj8HXArPfpPEKGLZ+kB5ONRTCiGQXo8RQYL0hH8t6pWXUBBK5KkkQmTNOwKK4LEsd0yTsgtjJVm4UBSZea4w==", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/joycon": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/joycon/-/joycon-3.1.1.tgz", + "integrity": "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==", + "engines": { + "node": ">=10" + } + }, + "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==", + "dev": true + }, + "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==", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" + }, + "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 + }, + "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==", + "dev": true + }, + "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/jsonwebtoken": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.0.tgz", + "integrity": "sha512-tuGfYXxkQGDPnLJ7SibiQgVgeDgfbPq2k2ICcbgqW8WxWLBAxKQM/ZCu/IT8SOSwmaYl4dpTFCW5xZv7YbbWUw==", + "dependencies": { + "jws": "^3.2.2", + "lodash": "^4.17.21", + "ms": "^2.1.1", + "semver": "^7.3.8" + }, + "engines": { + "node": ">=12", + "npm": ">=6" + } + }, + "node_modules/jsonwebtoken/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/jsonwebtoken/node_modules/semver": { + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.2.tgz", + "integrity": "sha512-SoftuTROv/cRjCze/scjGyiDtcUyxw1rgYQSZY7XTmtR5hX+dm76iDbTH8TkLPHCQmlbQVSSbNZCPM2hb0knnQ==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jsonwebtoken/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/jwa": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", + "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", + "dependencies": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/jws": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "dependencies": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "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/load-json-file": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-5.3.0.tgz", + "integrity": "sha512-cJGP40Jc/VXUsp8/OrnyKyTZ1y6v/dphm3bioS+RrKXjK2BB6wHUd6JptZEFDGgGahMT+InnZO5i1Ei9mpC8Bw==", + "dependencies": { + "graceful-fs": "^4.1.15", + "parse-json": "^4.0.0", + "pify": "^4.0.1", + "strip-bom": "^3.0.0", + "type-fest": "^0.3.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/load-json-file/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/load-json-file/node_modules/type-fest": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", + "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==", + "engines": { + "node": ">=6" + } + }, + "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.defaults": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", + "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==" + }, + "node_modules/lodash.flatten": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", + "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==" + }, + "node_modules/lodash.isarguments": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", + "integrity": "sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==" + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true + }, + "node_modules/lru_map": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz", + "integrity": "sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ==" + }, + "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/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-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, + "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==", + "dev": true + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "engines": { + "node": ">= 0.6" + } + }, + "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": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "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==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "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/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/morgan": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz", + "integrity": "sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==", + "dev": true, + "dependencies": { + "basic-auth": "~2.0.1", + "debug": "2.6.9", + "depd": "~2.0.0", + "on-finished": "~2.3.0", + "on-headers": "~1.0.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/morgan/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/morgan/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/morgan/node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/mri": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.1.4.tgz", + "integrity": "sha512-6y7IjGPm8AzlvoUrwAaw1tLnUBudaS3752vcd8JtrpGGQn+rXIe63LFVHm/YMwtqAuh+LJPCFdlLYPWM1nYn6w==", + "engines": { + "node": ">=4" + } + }, + "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/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } + }, + "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==" + }, + "node_modules/nock": { + "version": "13.3.1", + "resolved": "https://registry.npmjs.org/nock/-/nock-13.3.1.tgz", + "integrity": "sha512-vHnopocZuI93p2ccivFyGuUfzjq2fxNyNurp7816mlT5V5HF4SzXu8lvLrVzBbNqzs+ODooZ6OksuSUNM7Njkw==", + "dev": true, + "dependencies": { + "debug": "^4.1.0", + "json-stringify-safe": "^5.0.1", + "lodash": "^4.17.21", + "propagate": "^2.0.0" + }, + "engines": { + "node": ">= 10.13" + } + }, + "node_modules/node-fetch": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.11.tgz", + "integrity": "sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true + }, + "node_modules/node-releases": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.12.tgz", + "integrity": "sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ==", + "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/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==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/object-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/octokit-auth-probot": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/octokit-auth-probot/-/octokit-auth-probot-1.2.9.tgz", + "integrity": "sha512-mMjw6Y760EwJnW2tSVooJK8BMdsG6D40SoCclnefVf/5yWjaNVquEu8NREBVWb60OwbpnMEz4vREXHB5xdMFYQ==", + "dependencies": { + "@octokit/auth-app": "^4.0.2", + "@octokit/auth-token": "^3.0.0", + "@octokit/auth-unauthenticated": "^3.0.0", + "@octokit/types": "^8.0.0" + }, + "peerDependencies": { + "@octokit/core": ">=3.2" + } + }, + "node_modules/octokit-auth-probot/node_modules/@octokit/auth-token": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.4.tgz", + "integrity": "sha512-TWFX7cZF2LXoCvdmJWY7XVPi74aSY0+FfBZNSXEXFkMpjcqsQwDSYVv5FhRFaI0V1ECnwbz4j59T/G+rXNWaIQ==", + "engines": { + "node": ">= 14" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "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==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "dev": true, + "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": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "engines": { + "node": ">=6" + } + }, + "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==", + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "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==", + "dev": true, + "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-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "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": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "engines": { + "node": ">=6" + } + }, + "node_modules/pino": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/pino/-/pino-6.14.0.tgz", + "integrity": "sha512-iuhEDel3Z3hF9Jfe44DPXR8l07bhjuFY3GMHIXbjnY9XcafbyDDwl2sN2vw2GjMPf5Nkoe+OFao7ffn9SXaKDg==", + "dependencies": { + "fast-redact": "^3.0.0", + "fast-safe-stringify": "^2.0.8", + "flatstr": "^1.0.12", + "pino-std-serializers": "^3.1.0", + "process-warning": "^1.0.0", + "quick-format-unescaped": "^4.0.3", + "sonic-boom": "^1.0.2" + }, + "bin": { + "pino": "bin.js" + } + }, + "node_modules/pino-http": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/pino-http/-/pino-http-5.8.0.tgz", + "integrity": "sha512-YwXiyRb9y0WCD1P9PcxuJuh3Dc5qmXde/paJE86UGYRdiFOi828hR9iUGmk5gaw6NBT9gLtKANOHFimvh19U5w==", + "dependencies": { + "fast-url-parser": "^1.1.3", + "pino": "^6.13.0", + "pino-std-serializers": "^4.0.0" + } + }, + "node_modules/pino-http/node_modules/pino-std-serializers": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-4.0.0.tgz", + "integrity": "sha512-cK0pekc1Kjy5w9V2/n+8MkZwusa6EyyxfeQCB799CQRhRt/CqYKiWs5adeu8Shve2ZNffvfC/7J64A2PJo1W/Q==" + }, + "node_modules/pino-pretty": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/pino-pretty/-/pino-pretty-6.0.0.tgz", + "integrity": "sha512-jyeR2fXXWc68st1DTTM5NhkHlx8p+1fKZMfm84Jwq+jSw08IwAjNaZBZR6ts69hhPOfOjg/NiE1HYW7vBRPL3A==", + "dependencies": { + "@hapi/bourne": "^2.0.0", + "args": "^5.0.1", + "colorette": "^1.3.0", + "dateformat": "^4.5.1", + "fast-safe-stringify": "^2.0.7", + "jmespath": "^0.15.0", + "joycon": "^3.0.0", + "pump": "^3.0.0", + "readable-stream": "^3.6.0", + "rfdc": "^1.3.0", + "split2": "^3.1.1", + "strip-json-comments": "^3.1.1" + }, + "bin": { + "pino-pretty": "bin.js" + } + }, + "node_modules/pino-pretty/node_modules/split2": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", + "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", + "dependencies": { + "readable-stream": "^3.0.0" + } + }, + "node_modules/pino-std-serializers": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-6.2.1.tgz", + "integrity": "sha512-wHuWB+CvSVb2XqXM0W/WOYUkVSPbiJb9S5fNB7TBhd8s892Xq910bRxwHtC4l71hgztObTjXL6ZheZXFjhDrDQ==" + }, + "node_modules/pino/node_modules/pino-std-serializers": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-3.2.0.tgz", + "integrity": "sha512-EqX4pwDPrt3MuOAAUBMU0Tk5kR/YcCM5fNPEzgCO2zJ5HfX0vbiH9HbJglnyeQsN96Kznae6MWD47pZB5avTrg==" + }, + "node_modules/pino/node_modules/sonic-boom": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-1.4.1.tgz", + "integrity": "sha512-LRHh/A8tpW7ru89lrlkU4AszXt1dbwSjVWguGrmlxE7tawVmDBlI1PILMkXAxJTwqhgsEeTHzj36D5CmHgQmNg==", + "dependencies": { + "atomic-sleep": "^1.0.0", + "flatstr": "^1.0.12" + } + }, + "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-conf": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-3.1.0.tgz", + "integrity": "sha512-m0OTbR/5VPNPqO1ph6Fqbj7Hv6QU7gR/tQW40ZqrL1rjgCU85W6C1bJn0BItuJqnR98PWzw7Z8hHeChD1WrgdQ==", + "dependencies": { + "find-up": "^3.0.0", + "load-json-file": "^5.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-conf/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-conf/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-conf/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==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-conf/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-conf/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "engines": { + "node": ">=4" + } + }, + "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/pretty-format": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.5.0.tgz", + "integrity": "sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.4.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/probot": { + "version": "12.3.1", + "resolved": "https://registry.npmjs.org/probot/-/probot-12.3.1.tgz", + "integrity": "sha512-ECSgycmAC0ILEK6cOa+x3QPufP5JybsuohOFCYr3glQU5SkbmypZJE/Sfio9mxAFHK5LCXveIDsfZCxf6ck4JA==", + "dependencies": { + "@octokit/core": "^3.2.4", + "@octokit/plugin-enterprise-compatibility": "^1.2.8", + "@octokit/plugin-paginate-rest": "^2.6.2", + "@octokit/plugin-rest-endpoint-methods": "^5.0.1", + "@octokit/plugin-retry": "^3.0.6", + "@octokit/plugin-throttling": "^3.3.4", + "@octokit/types": "^8.0.0", + "@octokit/webhooks": "^9.8.4", + "@probot/get-private-key": "^1.1.0", + "@probot/octokit-plugin-config": "^1.0.0", + "@probot/pino": "^2.2.0", + "@types/express": "^4.17.9", + "@types/ioredis": "^4.27.1", + "@types/pino": "^6.3.4", + "@types/pino-http": "^5.0.6", + "commander": "^6.2.0", + "deepmerge": "^4.2.2", + "deprecation": "^2.3.1", + "dotenv": "^8.2.0", + "eventsource": "^2.0.2", + "express": "^4.17.1", + "express-handlebars": "^6.0.3", + "ioredis": "^4.27.8", + "js-yaml": "^3.14.1", + "lru-cache": "^6.0.0", + "octokit-auth-probot": "^1.2.2", + "pino": "^6.7.0", + "pino-http": "^5.3.0", + "pkg-conf": "^3.1.0", + "resolve": "^1.19.0", + "semver": "^7.3.4", + "update-dotenv": "^1.1.1", + "uuid": "^8.3.2" + }, + "bin": { + "probot": "bin/probot.js" + }, + "engines": { + "node": ">=10.21" + } + }, + "node_modules/probot/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/probot/node_modules/semver": { + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.2.tgz", + "integrity": "sha512-SoftuTROv/cRjCze/scjGyiDtcUyxw1rgYQSZY7XTmtR5hX+dm76iDbTH8TkLPHCQmlbQVSSbNZCPM2hb0knnQ==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/probot/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/process-warning": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-1.0.0.tgz", + "integrity": "sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q==" + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/propagate": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/propagate/-/propagate-2.0.1.tgz", + "integrity": "sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "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": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==" + }, + "node_modules/pure-rand": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.2.tgz", + "integrity": "sha512-6Yg0ekpKICSjPswYOuC5sku/TSWaRYlA0qsXqJgM/d/4pLPHPuTxK7Nbf7jFKzAeedUhR8C7K9Uv63FBsSo8xQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + ] + }, + "node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/quick-format-unescaped": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz", + "integrity": "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==" + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/redis-commands": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/redis-commands/-/redis-commands-1.7.0.tgz", + "integrity": "sha512-nJWqw3bTFy21hX/CPKHth6sfhZbdiHP6bTawSgQBlKOVRG7EZkfHbbHwQJnrE4vsQf0CMNE+3gJ4Fmm16vdVlQ==" + }, + "node_modules/redis-errors": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/redis-errors/-/redis-errors-1.2.0.tgz", + "integrity": "sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==", + "engines": { + "node": ">=4" + } + }, + "node_modules/redis-parser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redis-parser/-/redis-parser-3.0.0.tgz", + "integrity": "sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==", + "dependencies": { + "redis-errors": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "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/resolve": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", + "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "dependencies": { + "is-core-module": "^2.11.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-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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/resolve.exports": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", + "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/rfdc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", + "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==" + }, + "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/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "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==", + "dev": true, + "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==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "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/smee-client": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/smee-client/-/smee-client-1.2.3.tgz", + "integrity": "sha512-uDrU8u9/Ln7aRXyzGHgVaNUS8onHZZeSwQjCdkMoSL7U85xI+l+Y2NgjibkMJAyXkW7IAbb8rw9RMHIjS6lAwA==", + "dev": true, + "dependencies": { + "commander": "^2.19.0", + "eventsource": "^1.1.0", + "morgan": "^1.9.1", + "superagent": "^7.1.3", + "validator": "^13.7.0" + }, + "bin": { + "smee": "bin/smee.js" + } + }, + "node_modules/smee-client/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==", + "dev": true + }, + "node_modules/smee-client/node_modules/eventsource": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.1.2.tgz", + "integrity": "sha512-xAH3zWhgO2/3KIniEKYPr8plNSzlGINOUqYj0m0u7AB81iRw8b/3E73W6AuU+6klLbaSFmZnaETQ2lXPfAydrA==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/sonic-boom": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-2.8.0.tgz", + "integrity": "sha512-kuonw1YOYYNOve5iHdSahXPOK49GqwA+LZhI6Wz/l0rP57iKyXXIHaRagOBHAPmGwJC6od2Z9zgvZ5loSgMlVg==", + "dependencies": { + "atomic-sleep": "^1.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==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/split2": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", + "engines": { + "node": ">= 10.x" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/standard-as-callback": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/standard-as-callback/-/standard-as-callback-2.1.0.tgz", + "integrity": "sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==" + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "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/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-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==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/superagent": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/superagent/-/superagent-7.1.5.tgz", + "integrity": "sha512-HQYyGuDRFGmZ6GNC4hq2f37KnsY9Lr0/R1marNZTgMweVDQLTLJJ6DGQ9Tj/xVVs5HEnop9EMmTbywb5P30aqw==", + "dev": true, + "dependencies": { + "component-emitter": "^1.3.0", + "cookiejar": "^2.1.3", + "debug": "^4.3.4", + "fast-safe-stringify": "^2.1.1", + "form-data": "^4.0.0", + "formidable": "^2.0.1", + "methods": "^1.1.2", + "mime": "^2.5.0", + "qs": "^6.10.3", + "readable-stream": "^3.6.0", + "semver": "^7.3.7" + }, + "engines": { + "node": ">=6.4.0 <13 || >=14" + } + }, + "node_modules/superagent/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==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/superagent/node_modules/mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/superagent/node_modules/semver": { + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.2.tgz", + "integrity": "sha512-SoftuTROv/cRjCze/scjGyiDtcUyxw1rgYQSZY7XTmtR5hX+dm76iDbTH8TkLPHCQmlbQVSSbNZCPM2hb0knnQ==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/superagent/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "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/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/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/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, + "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==", + "dev": true, + "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/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "node_modules/ts-jest": { + "version": "29.1.0", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.0.tgz", + "integrity": "sha512-ZhNr7Z4PcYa+JjMl62ir+zPiNJfXJN6E8hSLnaUKhOgqcn8vb3e537cpkd0FuAfRK3sR1LSqM1MOhliXNgOFPA==", + "dev": true, + "dependencies": { + "bs-logger": "0.x", + "fast-json-stable-stringify": "2.x", + "jest-util": "^29.0.0", + "json5": "^2.2.3", + "lodash.memoize": "4.x", + "make-error": "1.x", + "semver": "7.x", + "yargs-parser": "^21.0.1" + }, + "bin": { + "ts-jest": "cli.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": ">=7.0.0-beta.0 <8", + "@jest/types": "^29.0.0", + "babel-jest": "^29.0.0", + "jest": "^29.0.0", + "typescript": ">=4.3 <6" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "@jest/types": { + "optional": true + }, + "babel-jest": { + "optional": true + }, + "esbuild": { + "optional": true + } + } + }, + "node_modules/ts-jest/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==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ts-jest/node_modules/semver": { + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.2.tgz", + "integrity": "sha512-SoftuTROv/cRjCze/scjGyiDtcUyxw1rgYQSZY7XTmtR5hX+dm76iDbTH8TkLPHCQmlbQVSSbNZCPM2hb0knnQ==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ts-jest/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "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==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/uglify-js": { + "version": "3.17.4", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", + "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/universal-github-app-jwt": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/universal-github-app-jwt/-/universal-github-app-jwt-1.1.1.tgz", + "integrity": "sha512-G33RTLrIBMFmlDV4u4CBF7dh71eWwykck4XgaxaIVeZKOYZRAAxvcGMRFTUclVY6xoUPQvO4Ne5wKGxYm/Yy9w==", + "dependencies": { + "@types/jsonwebtoken": "^9.0.0", + "jsonwebtoken": "^9.0.0" + } + }, + "node_modules/universal-user-agent": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz", + "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==" + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", + "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", + "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/update-dotenv": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/update-dotenv/-/update-dotenv-1.1.1.tgz", + "integrity": "sha512-3cIC18In/t0X/yH793c00qqxcKD8jVCgNOPif/fGQkFpYMGecM9YAc+kaAKXuZsM2dE9I9wFI7KvAuNX22SGMQ==", + "peerDependencies": { + "dotenv": "*" + } + }, + "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==" + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "engines": { + "node": ">= 0.4.0" + } + }, + "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/v8-to-istanbul": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz", + "integrity": "sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/v8-to-istanbul/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/validator": { + "version": "13.9.0", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.9.0.tgz", + "integrity": "sha512-B+dGG8U3fdtM0/aNK4/X8CXq/EcxU2WPrPEkJGslb47qyHsxmbggTWK0yEA4qnYVNF+nxNlN88o14hIcPmSIEA==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==" + }, + "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==", + "dev": true, + "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/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": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "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/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "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==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + }, + "dependencies": { + "@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, + "requires": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@babel/code-frame": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.5.tgz", + "integrity": "sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==", + "dev": true, + "requires": { + "@babel/highlight": "^7.22.5" + } + }, + "@babel/compat-data": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.5.tgz", + "integrity": "sha512-4Jc/YuIaYqKnDDz892kPIledykKg12Aw1PYX5i/TY28anJtacvM1Rrr8wbieB9GfEJwlzqT0hUEao0CxEebiDA==", + "dev": true + }, + "@babel/core": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.5.tgz", + "integrity": "sha512-SBuTAjg91A3eKOvD+bPEz3LlhHZRNu1nFOVts9lzDJTXshHTjII0BAtDS3Y2DAkdZdDKWVZGVwkDfc4Clxn1dg==", + "dev": true, + "requires": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.22.5", + "@babel/generator": "^7.22.5", + "@babel/helper-compilation-targets": "^7.22.5", + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helpers": "^7.22.5", + "@babel/parser": "^7.22.5", + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.5", + "@babel/types": "^7.22.5", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.2", + "semver": "^6.3.0" + }, + "dependencies": { + "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 + } + } + }, + "@babel/generator": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.5.tgz", + "integrity": "sha512-+lcUbnTRhd0jOewtFSedLyiPsD5tswKkbgcezOqqWFUVNEwoUTlpPOBmvhG7OXWLR4jMdv0czPGH5XbflnD1EA==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.5.tgz", + "integrity": "sha512-Ji+ywpHeuqxB8WDxraCiqR0xfhYjiDE/e6k7FuIaANnoOFxAHskHChz4vA1mJC9Lbm01s1PVAGhQY4FUKSkGZw==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.22.5", + "@babel/helper-validator-option": "^7.22.5", + "browserslist": "^4.21.3", + "lru-cache": "^5.1.1", + "semver": "^6.3.0" + } + }, + "@babel/helper-environment-visitor": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz", + "integrity": "sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==", + "dev": true + }, + "@babel/helper-function-name": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz", + "integrity": "sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==", + "dev": true, + "requires": { + "@babel/template": "^7.22.5", + "@babel/types": "^7.22.5" + } + }, + "@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==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-module-imports": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz", + "integrity": "sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-module-transforms": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.5.tgz", + "integrity": "sha512-+hGKDt/Ze8GFExiVHno/2dvG5IdstpzCq0y4Qc9OJ25D4q3pKfiIP/4Vp3/JvhDkLKsDK2api3q3fpIgiIF5bw==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.5", + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.5", + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "dev": true + }, + "@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, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.5.tgz", + "integrity": "sha512-thqK5QFghPKWLhAV321lxF95yCg2K3Ob5yw+M3VHWfdia0IkPXUtoLH8x/6Fh486QUvzhb8YOWHChTVen2/PoQ==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-string-parser": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", + "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", + "dev": true + }, + "@babel/helper-validator-identifier": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", + "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz", + "integrity": "sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==", + "dev": true + }, + "@babel/helpers": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.5.tgz", + "integrity": "sha512-pSXRmfE1vzcUIDFQcSGA5Mr+GxBV9oiRKDuDxXvWQQBCh8HoIjs/2DlDB7H8smac1IVrB9/xdXj2N3Wol9Cr+Q==", + "dev": true, + "requires": { + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.5", + "@babel/types": "^7.22.5" + } + }, + "@babel/highlight": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.5.tgz", + "integrity": "sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.22.5", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "dependencies": { + "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==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "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==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "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==", + "dev": true + }, + "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==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@babel/parser": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.5.tgz", + "integrity": "sha512-DFZMC9LJUG9PLOclRC32G63UXwzqS2koQC8dkx+PLdmt1xSePYpbT/NbsrJy8Q/muXz7o/h/d4A7Fuyixm559Q==", + "dev": true + }, + "@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, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@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, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@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, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@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, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-jsx": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz", + "integrity": "sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@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, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@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, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@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, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@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, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@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, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@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, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@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, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-typescript": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz", + "integrity": "sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/template": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.5.tgz", + "integrity": "sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.22.5", + "@babel/parser": "^7.22.5", + "@babel/types": "^7.22.5" + } + }, + "@babel/traverse": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.5.tgz", + "integrity": "sha512-7DuIjPgERaNo6r+PZwItpjCZEa5vyw4eJGufeLxrPdBXBoLcCJCIasvK6pK/9DVNrLZTLFhUGqaC6X/PA007TQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.22.5", + "@babel/generator": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.5", + "@babel/parser": "^7.22.5", + "@babel/types": "^7.22.5", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.5.tgz", + "integrity": "sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.5", + "to-fast-properties": "^2.0.0" + } + }, + "@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "@hapi/bourne": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-2.1.0.tgz", + "integrity": "sha512-i1BpaNDVLJdRBEKeJWkVO6tYX6DMFBuwMhSuWqLsY4ufeTKGVuV5rBsUhxPayXqnnWHgXUAmWK16H/ykO5Wj4Q==" + }, + "@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, + "requires": { + "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" + } + }, + "@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 + }, + "@jest/console": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.5.0.tgz", + "integrity": "sha512-NEpkObxPwyw/XxZVLPmAGKE89IQRp4puc6IQRPru6JKd1M3fW9v1xM1AnzIJE65hbCkzQAdnL8P47e9hzhiYLQ==", + "dev": true, + "requires": { + "@jest/types": "^29.5.0", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.5.0", + "jest-util": "^29.5.0", + "slash": "^3.0.0" + } + }, + "@jest/core": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.5.0.tgz", + "integrity": "sha512-28UzQc7ulUrOQw1IsN/kv1QES3q2kkbl/wGslyhAclqZ/8cMdB5M68BffkIdSJgKBUt50d3hbwJ92XESlE7LiQ==", + "dev": true, + "requires": { + "@jest/console": "^29.5.0", + "@jest/reporters": "^29.5.0", + "@jest/test-result": "^29.5.0", + "@jest/transform": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.5.0", + "jest-config": "^29.5.0", + "jest-haste-map": "^29.5.0", + "jest-message-util": "^29.5.0", + "jest-regex-util": "^29.4.3", + "jest-resolve": "^29.5.0", + "jest-resolve-dependencies": "^29.5.0", + "jest-runner": "^29.5.0", + "jest-runtime": "^29.5.0", + "jest-snapshot": "^29.5.0", + "jest-util": "^29.5.0", + "jest-validate": "^29.5.0", + "jest-watcher": "^29.5.0", + "micromatch": "^4.0.4", + "pretty-format": "^29.5.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "jest-config": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.5.0.tgz", + "integrity": "sha512-kvDUKBnNJPNBmFFOhDbm59iu1Fii1Q6SxyhXfvylq3UTHbg6o7j/g8k2dZyXWLvfdKB1vAPxNZnMgtKJcmu3kA==", + "dev": true, + "requires": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.5.0", + "@jest/types": "^29.5.0", + "babel-jest": "^29.5.0", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.5.0", + "jest-environment-node": "^29.5.0", + "jest-get-type": "^29.4.3", + "jest-regex-util": "^29.4.3", + "jest-resolve": "^29.5.0", + "jest-runner": "^29.5.0", + "jest-util": "^29.5.0", + "jest-validate": "^29.5.0", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.5.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + } + }, + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + } + } + }, + "@jest/environment": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.5.0.tgz", + "integrity": "sha512-5FXw2+wD29YU1d4I2htpRX7jYnAyTRjP2CsXQdo9SAM8g3ifxWPSV0HnClSn71xwctr0U3oZIIH+dtbfmnbXVQ==", + "dev": true, + "requires": { + "@jest/fake-timers": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/node": "*", + "jest-mock": "^29.5.0" + } + }, + "@jest/expect": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.5.0.tgz", + "integrity": "sha512-PueDR2HGihN3ciUNGr4uelropW7rqUfTiOn+8u0leg/42UhblPxHkfoh0Ruu3I9Y1962P3u2DY4+h7GVTSVU6g==", + "dev": true, + "requires": { + "expect": "^29.5.0", + "jest-snapshot": "^29.5.0" + } + }, + "@jest/expect-utils": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.5.0.tgz", + "integrity": "sha512-fmKzsidoXQT2KwnrwE0SQq3uj8Z763vzR8LnLBwC2qYWEFpjX8daRsk6rHUM1QvNlEW/UJXNXm59ztmJJWs2Mg==", + "dev": true, + "requires": { + "jest-get-type": "^29.4.3" + } + }, + "@jest/fake-timers": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.5.0.tgz", + "integrity": "sha512-9ARvuAAQcBwDAqOnglWq2zwNIRUDtk/SCkp/ToGEhFv5r86K21l+VEs0qNTaXtyiY0lEePl3kylijSYJQqdbDg==", + "dev": true, + "requires": { + "@jest/types": "^29.5.0", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.5.0", + "jest-mock": "^29.5.0", + "jest-util": "^29.5.0" + } + }, + "@jest/globals": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.5.0.tgz", + "integrity": "sha512-S02y0qMWGihdzNbUiqSAiKSpSozSuHX5UYc7QbnHP+D9Lyw8DgGGCinrN9uSuHPeKgSSzvPom2q1nAtBvUsvPQ==", + "dev": true, + "requires": { + "@jest/environment": "^29.5.0", + "@jest/expect": "^29.5.0", + "@jest/types": "^29.5.0", + "jest-mock": "^29.5.0" + } + }, + "@jest/reporters": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.5.0.tgz", + "integrity": "sha512-D05STXqj/M8bP9hQNSICtPqz97u7ffGzZu+9XLucXhkOFBqKcXe04JLZOgIekOxdb73MAoBUFnqvf7MCpKk5OA==", + "dev": true, + "requires": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^29.5.0", + "@jest/test-result": "^29.5.0", + "@jest/transform": "^29.5.0", + "@jest/types": "^29.5.0", + "@jridgewell/trace-mapping": "^0.3.15", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.5.0", + "jest-util": "^29.5.0", + "jest-worker": "^29.5.0", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" + } + }, + "@jest/schemas": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.4.3.tgz", + "integrity": "sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg==", + "dev": true, + "requires": { + "@sinclair/typebox": "^0.25.16" + } + }, + "@jest/source-map": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.4.3.tgz", + "integrity": "sha512-qyt/mb6rLyd9j1jUts4EQncvS6Yy3PM9HghnNv86QBlV+zdL2inCdK1tuVlL+J+lpiw2BI67qXOrX3UurBqQ1w==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.15", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + } + }, + "@jest/test-result": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.5.0.tgz", + "integrity": "sha512-fGl4rfitnbfLsrfx1uUpDEESS7zM8JdgZgOCQuxQvL1Sn/I6ijeAVQWGfXI9zb1i9Mzo495cIpVZhA0yr60PkQ==", + "dev": true, + "requires": { + "@jest/console": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + } + }, + "@jest/test-sequencer": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.5.0.tgz", + "integrity": "sha512-yPafQEcKjkSfDXyvtgiV4pevSeyuA6MQr6ZIdVkWJly9vkqjnFfcfhRQqpD5whjoU8EORki752xQmjaqoFjzMQ==", + "dev": true, + "requires": { + "@jest/test-result": "^29.5.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.5.0", + "slash": "^3.0.0" + } + }, + "@jest/transform": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.5.0.tgz", + "integrity": "sha512-8vbeZWqLJOvHaDfeMuoHITGKSz5qWc9u04lnWrQE3VyuSw604PzQM824ZeX9XSjUCeDiE3GuxZe5UKa8J61NQw==", + "dev": true, + "requires": { + "@babel/core": "^7.11.6", + "@jest/types": "^29.5.0", + "@jridgewell/trace-mapping": "^0.3.15", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.5.0", + "jest-regex-util": "^29.4.3", + "jest-util": "^29.5.0", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" + } + }, + "@jest/types": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.5.0.tgz", + "integrity": "sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog==", + "dev": true, + "requires": { + "@jest/schemas": "^29.4.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + } + }, + "@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true + }, + "@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true + }, + "@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==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.18", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", + "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + }, + "dependencies": { + "@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + } + } + }, + "@octokit/auth-app": { + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/@octokit/auth-app/-/auth-app-4.0.13.tgz", + "integrity": "sha512-NBQkmR/Zsc+8fWcVIFrwDgNXS7f4XDrkd9LHdi9DPQw1NdGHLviLzRO2ZBwTtepnwHXW5VTrVU9eFGijMUqllg==", + "requires": { + "@octokit/auth-oauth-app": "^5.0.0", + "@octokit/auth-oauth-user": "^2.0.0", + "@octokit/request": "^6.0.0", + "@octokit/request-error": "^3.0.0", + "@octokit/types": "^9.0.0", + "deprecation": "^2.3.1", + "lru-cache": "^9.0.0", + "universal-github-app-jwt": "^1.1.1", + "universal-user-agent": "^6.0.0" + }, + "dependencies": { + "@octokit/endpoint": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.6.tgz", + "integrity": "sha512-5L4fseVRUsDFGR00tMWD/Trdeeihn999rTMGRMC1G/Ldi1uWlWJzI98H4Iak5DB/RVvQuyMYKqSK/R6mbSOQyg==", + "requires": { + "@octokit/types": "^9.0.0", + "is-plain-object": "^5.0.0", + "universal-user-agent": "^6.0.0" + } + }, + "@octokit/openapi-types": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-18.0.0.tgz", + "integrity": "sha512-V8GImKs3TeQRxRtXFpG2wl19V7444NIOTDF24AWuIbmNaNYOQMWRbjcGDXV5B+0n887fgDcuMNOmlul+k+oJtw==" + }, + "@octokit/request": { + "version": "6.2.8", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-6.2.8.tgz", + "integrity": "sha512-ow4+pkVQ+6XVVsekSYBzJC0VTVvh/FCTUUgTsboGq+DTeWdyIFV8WSCdo0RIxk6wSkBTHqIK1mYuY7nOBXOchw==", + "requires": { + "@octokit/endpoint": "^7.0.0", + "@octokit/request-error": "^3.0.0", + "@octokit/types": "^9.0.0", + "is-plain-object": "^5.0.0", + "node-fetch": "^2.6.7", + "universal-user-agent": "^6.0.0" + } + }, + "@octokit/request-error": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.3.tgz", + "integrity": "sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ==", + "requires": { + "@octokit/types": "^9.0.0", + "deprecation": "^2.0.0", + "once": "^1.4.0" + } + }, + "@octokit/types": { + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-9.3.2.tgz", + "integrity": "sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA==", + "requires": { + "@octokit/openapi-types": "^18.0.0" + } + }, + "lru-cache": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-9.1.2.tgz", + "integrity": "sha512-ERJq3FOzJTxBbFjZ7iDs+NiK4VI9Wz+RdrrAB8dio1oV+YvdPzUEE4QNiT2VD51DkIbCYRUUzCRkssXCHqSnKQ==" + } + } + }, + "@octokit/auth-oauth-app": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-app/-/auth-oauth-app-5.0.6.tgz", + "integrity": "sha512-SxyfIBfeFcWd9Z/m1xa4LENTQ3l1y6Nrg31k2Dcb1jS5ov7pmwMJZ6OGX8q3K9slRgVpeAjNA1ipOAMHkieqyw==", + "requires": { + "@octokit/auth-oauth-device": "^4.0.0", + "@octokit/auth-oauth-user": "^2.0.0", + "@octokit/request": "^6.0.0", + "@octokit/types": "^9.0.0", + "@types/btoa-lite": "^1.0.0", + "btoa-lite": "^1.0.0", + "universal-user-agent": "^6.0.0" + }, + "dependencies": { + "@octokit/endpoint": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.6.tgz", + "integrity": "sha512-5L4fseVRUsDFGR00tMWD/Trdeeihn999rTMGRMC1G/Ldi1uWlWJzI98H4Iak5DB/RVvQuyMYKqSK/R6mbSOQyg==", + "requires": { + "@octokit/types": "^9.0.0", + "is-plain-object": "^5.0.0", + "universal-user-agent": "^6.0.0" + } + }, + "@octokit/openapi-types": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-18.0.0.tgz", + "integrity": "sha512-V8GImKs3TeQRxRtXFpG2wl19V7444NIOTDF24AWuIbmNaNYOQMWRbjcGDXV5B+0n887fgDcuMNOmlul+k+oJtw==" + }, + "@octokit/request": { + "version": "6.2.8", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-6.2.8.tgz", + "integrity": "sha512-ow4+pkVQ+6XVVsekSYBzJC0VTVvh/FCTUUgTsboGq+DTeWdyIFV8WSCdo0RIxk6wSkBTHqIK1mYuY7nOBXOchw==", + "requires": { + "@octokit/endpoint": "^7.0.0", + "@octokit/request-error": "^3.0.0", + "@octokit/types": "^9.0.0", + "is-plain-object": "^5.0.0", + "node-fetch": "^2.6.7", + "universal-user-agent": "^6.0.0" + } + }, + "@octokit/request-error": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.3.tgz", + "integrity": "sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ==", + "requires": { + "@octokit/types": "^9.0.0", + "deprecation": "^2.0.0", + "once": "^1.4.0" + } + }, + "@octokit/types": { + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-9.3.2.tgz", + "integrity": "sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA==", + "requires": { + "@octokit/openapi-types": "^18.0.0" + } + } + } + }, + "@octokit/auth-oauth-device": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-device/-/auth-oauth-device-4.0.5.tgz", + "integrity": "sha512-XyhoWRTzf2ZX0aZ52a6Ew5S5VBAfwwx1QnC2Np6Et3MWQpZjlREIcbcvVZtkNuXp6Z9EeiSLSDUqm3C+aMEHzQ==", + "requires": { + "@octokit/oauth-methods": "^2.0.0", + "@octokit/request": "^6.0.0", + "@octokit/types": "^9.0.0", + "universal-user-agent": "^6.0.0" + }, + "dependencies": { + "@octokit/endpoint": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.6.tgz", + "integrity": "sha512-5L4fseVRUsDFGR00tMWD/Trdeeihn999rTMGRMC1G/Ldi1uWlWJzI98H4Iak5DB/RVvQuyMYKqSK/R6mbSOQyg==", + "requires": { + "@octokit/types": "^9.0.0", + "is-plain-object": "^5.0.0", + "universal-user-agent": "^6.0.0" + } + }, + "@octokit/openapi-types": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-18.0.0.tgz", + "integrity": "sha512-V8GImKs3TeQRxRtXFpG2wl19V7444NIOTDF24AWuIbmNaNYOQMWRbjcGDXV5B+0n887fgDcuMNOmlul+k+oJtw==" + }, + "@octokit/request": { + "version": "6.2.8", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-6.2.8.tgz", + "integrity": "sha512-ow4+pkVQ+6XVVsekSYBzJC0VTVvh/FCTUUgTsboGq+DTeWdyIFV8WSCdo0RIxk6wSkBTHqIK1mYuY7nOBXOchw==", + "requires": { + "@octokit/endpoint": "^7.0.0", + "@octokit/request-error": "^3.0.0", + "@octokit/types": "^9.0.0", + "is-plain-object": "^5.0.0", + "node-fetch": "^2.6.7", + "universal-user-agent": "^6.0.0" + } + }, + "@octokit/request-error": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.3.tgz", + "integrity": "sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ==", + "requires": { + "@octokit/types": "^9.0.0", + "deprecation": "^2.0.0", + "once": "^1.4.0" + } + }, + "@octokit/types": { + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-9.3.2.tgz", + "integrity": "sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA==", + "requires": { + "@octokit/openapi-types": "^18.0.0" + } + } + } + }, + "@octokit/auth-oauth-user": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-user/-/auth-oauth-user-2.1.2.tgz", + "integrity": "sha512-kkRqNmFe7s5GQcojE3nSlF+AzYPpPv7kvP/xYEnE57584pixaFBH8Vovt+w5Y3E4zWUEOxjdLItmBTFAWECPAg==", + "requires": { + "@octokit/auth-oauth-device": "^4.0.0", + "@octokit/oauth-methods": "^2.0.0", + "@octokit/request": "^6.0.0", + "@octokit/types": "^9.0.0", + "btoa-lite": "^1.0.0", + "universal-user-agent": "^6.0.0" + }, + "dependencies": { + "@octokit/endpoint": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.6.tgz", + "integrity": "sha512-5L4fseVRUsDFGR00tMWD/Trdeeihn999rTMGRMC1G/Ldi1uWlWJzI98H4Iak5DB/RVvQuyMYKqSK/R6mbSOQyg==", + "requires": { + "@octokit/types": "^9.0.0", + "is-plain-object": "^5.0.0", + "universal-user-agent": "^6.0.0" + } + }, + "@octokit/openapi-types": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-18.0.0.tgz", + "integrity": "sha512-V8GImKs3TeQRxRtXFpG2wl19V7444NIOTDF24AWuIbmNaNYOQMWRbjcGDXV5B+0n887fgDcuMNOmlul+k+oJtw==" + }, + "@octokit/request": { + "version": "6.2.8", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-6.2.8.tgz", + "integrity": "sha512-ow4+pkVQ+6XVVsekSYBzJC0VTVvh/FCTUUgTsboGq+DTeWdyIFV8WSCdo0RIxk6wSkBTHqIK1mYuY7nOBXOchw==", + "requires": { + "@octokit/endpoint": "^7.0.0", + "@octokit/request-error": "^3.0.0", + "@octokit/types": "^9.0.0", + "is-plain-object": "^5.0.0", + "node-fetch": "^2.6.7", + "universal-user-agent": "^6.0.0" + } + }, + "@octokit/request-error": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.3.tgz", + "integrity": "sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ==", + "requires": { + "@octokit/types": "^9.0.0", + "deprecation": "^2.0.0", + "once": "^1.4.0" + } + }, + "@octokit/types": { + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-9.3.2.tgz", + "integrity": "sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA==", + "requires": { + "@octokit/openapi-types": "^18.0.0" + } + } + } + }, + "@octokit/auth-token": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.5.0.tgz", + "integrity": "sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==", + "requires": { + "@octokit/types": "^6.0.3" + }, + "dependencies": { + "@octokit/openapi-types": { + "version": "12.11.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.11.0.tgz", + "integrity": "sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==" + }, + "@octokit/types": { + "version": "6.41.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.41.0.tgz", + "integrity": "sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==", + "requires": { + "@octokit/openapi-types": "^12.11.0" + } + } + } + }, + "@octokit/auth-unauthenticated": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@octokit/auth-unauthenticated/-/auth-unauthenticated-3.0.5.tgz", + "integrity": "sha512-yH2GPFcjrTvDWPwJWWCh0tPPtTL5SMgivgKPA+6v/XmYN6hGQkAto8JtZibSKOpf8ipmeYhLNWQ2UgW0GYILCw==", + "requires": { + "@octokit/request-error": "^3.0.0", + "@octokit/types": "^9.0.0" + }, + "dependencies": { + "@octokit/openapi-types": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-18.0.0.tgz", + "integrity": "sha512-V8GImKs3TeQRxRtXFpG2wl19V7444NIOTDF24AWuIbmNaNYOQMWRbjcGDXV5B+0n887fgDcuMNOmlul+k+oJtw==" + }, + "@octokit/request-error": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.3.tgz", + "integrity": "sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ==", + "requires": { + "@octokit/types": "^9.0.0", + "deprecation": "^2.0.0", + "once": "^1.4.0" + } + }, + "@octokit/types": { + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-9.3.2.tgz", + "integrity": "sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA==", + "requires": { + "@octokit/openapi-types": "^18.0.0" + } + } + } + }, + "@octokit/core": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-3.6.0.tgz", + "integrity": "sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q==", + "requires": { + "@octokit/auth-token": "^2.4.4", + "@octokit/graphql": "^4.5.8", + "@octokit/request": "^5.6.3", + "@octokit/request-error": "^2.0.5", + "@octokit/types": "^6.0.3", + "before-after-hook": "^2.2.0", + "universal-user-agent": "^6.0.0" + }, + "dependencies": { + "@octokit/openapi-types": { + "version": "12.11.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.11.0.tgz", + "integrity": "sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==" + }, + "@octokit/types": { + "version": "6.41.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.41.0.tgz", + "integrity": "sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==", + "requires": { + "@octokit/openapi-types": "^12.11.0" + } + } + } + }, + "@octokit/endpoint": { + "version": "6.0.12", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.12.tgz", + "integrity": "sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==", + "requires": { + "@octokit/types": "^6.0.3", + "is-plain-object": "^5.0.0", + "universal-user-agent": "^6.0.0" + }, + "dependencies": { + "@octokit/openapi-types": { + "version": "12.11.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.11.0.tgz", + "integrity": "sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==" + }, + "@octokit/types": { + "version": "6.41.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.41.0.tgz", + "integrity": "sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==", + "requires": { + "@octokit/openapi-types": "^12.11.0" + } + } + } + }, + "@octokit/graphql": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.8.0.tgz", + "integrity": "sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==", + "requires": { + "@octokit/request": "^5.6.0", + "@octokit/types": "^6.0.3", + "universal-user-agent": "^6.0.0" + }, + "dependencies": { + "@octokit/openapi-types": { + "version": "12.11.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.11.0.tgz", + "integrity": "sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==" + }, + "@octokit/types": { + "version": "6.41.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.41.0.tgz", + "integrity": "sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==", + "requires": { + "@octokit/openapi-types": "^12.11.0" + } + } + } + }, + "@octokit/oauth-authorization-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@octokit/oauth-authorization-url/-/oauth-authorization-url-5.0.0.tgz", + "integrity": "sha512-y1WhN+ERDZTh0qZ4SR+zotgsQUE1ysKnvBt1hvDRB2WRzYtVKQjn97HEPzoehh66Fj9LwNdlZh+p6TJatT0zzg==" + }, + "@octokit/oauth-methods": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@octokit/oauth-methods/-/oauth-methods-2.0.6.tgz", + "integrity": "sha512-l9Uml2iGN2aTWLZcm8hV+neBiFXAQ9+3sKiQe/sgumHlL6HDg0AQ8/l16xX/5jJvfxueqTW5CWbzd0MjnlfHZw==", + "requires": { + "@octokit/oauth-authorization-url": "^5.0.0", + "@octokit/request": "^6.2.3", + "@octokit/request-error": "^3.0.3", + "@octokit/types": "^9.0.0", + "btoa-lite": "^1.0.0" + }, + "dependencies": { + "@octokit/endpoint": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.6.tgz", + "integrity": "sha512-5L4fseVRUsDFGR00tMWD/Trdeeihn999rTMGRMC1G/Ldi1uWlWJzI98H4Iak5DB/RVvQuyMYKqSK/R6mbSOQyg==", + "requires": { + "@octokit/types": "^9.0.0", + "is-plain-object": "^5.0.0", + "universal-user-agent": "^6.0.0" + } + }, + "@octokit/openapi-types": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-18.0.0.tgz", + "integrity": "sha512-V8GImKs3TeQRxRtXFpG2wl19V7444NIOTDF24AWuIbmNaNYOQMWRbjcGDXV5B+0n887fgDcuMNOmlul+k+oJtw==" + }, + "@octokit/request": { + "version": "6.2.8", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-6.2.8.tgz", + "integrity": "sha512-ow4+pkVQ+6XVVsekSYBzJC0VTVvh/FCTUUgTsboGq+DTeWdyIFV8WSCdo0RIxk6wSkBTHqIK1mYuY7nOBXOchw==", + "requires": { + "@octokit/endpoint": "^7.0.0", + "@octokit/request-error": "^3.0.0", + "@octokit/types": "^9.0.0", + "is-plain-object": "^5.0.0", + "node-fetch": "^2.6.7", + "universal-user-agent": "^6.0.0" + } + }, + "@octokit/request-error": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.3.tgz", + "integrity": "sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ==", + "requires": { + "@octokit/types": "^9.0.0", + "deprecation": "^2.0.0", + "once": "^1.4.0" + } + }, + "@octokit/types": { + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-9.3.2.tgz", + "integrity": "sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA==", + "requires": { + "@octokit/openapi-types": "^18.0.0" + } + } + } + }, + "@octokit/openapi-types": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-14.0.0.tgz", + "integrity": "sha512-HNWisMYlR8VCnNurDU6os2ikx0s0VyEjDYHNS/h4cgb8DeOxQ0n72HyinUtdDVxJhFy3FWLGl0DJhfEWk3P5Iw==" + }, + "@octokit/plugin-enterprise-compatibility": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-enterprise-compatibility/-/plugin-enterprise-compatibility-1.3.0.tgz", + "integrity": "sha512-h34sMGdEOER/OKrZJ55v26ntdHb9OPfR1fwOx6Q4qYyyhWA104o11h9tFxnS/l41gED6WEI41Vu2G2zHDVC5lQ==", + "requires": { + "@octokit/request-error": "^2.1.0", + "@octokit/types": "^6.0.3" + }, + "dependencies": { + "@octokit/openapi-types": { + "version": "12.11.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.11.0.tgz", + "integrity": "sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==" + }, + "@octokit/types": { + "version": "6.41.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.41.0.tgz", + "integrity": "sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==", + "requires": { + "@octokit/openapi-types": "^12.11.0" + } + } + } + }, + "@octokit/plugin-paginate-rest": { + "version": "2.21.3", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.21.3.tgz", + "integrity": "sha512-aCZTEf0y2h3OLbrgKkrfFdjRL6eSOo8komneVQJnYecAxIej7Bafor2xhuDJOIFau4pk0i/P28/XgtbyPF0ZHw==", + "requires": { + "@octokit/types": "^6.40.0" + }, + "dependencies": { + "@octokit/openapi-types": { + "version": "12.11.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.11.0.tgz", + "integrity": "sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==" + }, + "@octokit/types": { + "version": "6.41.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.41.0.tgz", + "integrity": "sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==", + "requires": { + "@octokit/openapi-types": "^12.11.0" + } + } + } + }, + "@octokit/plugin-rest-endpoint-methods": { + "version": "5.16.2", + "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.16.2.tgz", + "integrity": "sha512-8QFz29Fg5jDuTPXVtey05BLm7OB+M8fnvE64RNegzX7U+5NUXcOcnpTIK0YfSHBg8gYd0oxIq3IZTe9SfPZiRw==", + "requires": { + "@octokit/types": "^6.39.0", + "deprecation": "^2.3.1" + }, + "dependencies": { + "@octokit/openapi-types": { + "version": "12.11.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.11.0.tgz", + "integrity": "sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==" + }, + "@octokit/types": { + "version": "6.41.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.41.0.tgz", + "integrity": "sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==", + "requires": { + "@octokit/openapi-types": "^12.11.0" + } + } + } + }, + "@octokit/plugin-retry": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/@octokit/plugin-retry/-/plugin-retry-3.0.9.tgz", + "integrity": "sha512-r+fArdP5+TG6l1Rv/C9hVoty6tldw6cE2pRHNGmFPdyfrc696R6JjrQ3d7HdVqGwuzfyrcaLAKD7K8TX8aehUQ==", + "requires": { + "@octokit/types": "^6.0.3", + "bottleneck": "^2.15.3" + }, + "dependencies": { + "@octokit/openapi-types": { + "version": "12.11.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.11.0.tgz", + "integrity": "sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==" + }, + "@octokit/types": { + "version": "6.41.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.41.0.tgz", + "integrity": "sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==", + "requires": { + "@octokit/openapi-types": "^12.11.0" + } + } + } + }, + "@octokit/plugin-throttling": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-throttling/-/plugin-throttling-3.7.0.tgz", + "integrity": "sha512-qrKT1Yl/KuwGSC6/oHpLBot3ooC9rq0/ryDYBCpkRtoj+R8T47xTMDT6Tk2CxWopFota/8Pi/2SqArqwC0JPow==", + "requires": { + "@octokit/types": "^6.0.1", + "bottleneck": "^2.15.3" + }, + "dependencies": { + "@octokit/openapi-types": { + "version": "12.11.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.11.0.tgz", + "integrity": "sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==" + }, + "@octokit/types": { + "version": "6.41.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.41.0.tgz", + "integrity": "sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==", + "requires": { + "@octokit/openapi-types": "^12.11.0" + } + } + } + }, + "@octokit/request": { + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.6.3.tgz", + "integrity": "sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==", + "requires": { + "@octokit/endpoint": "^6.0.1", + "@octokit/request-error": "^2.1.0", + "@octokit/types": "^6.16.1", + "is-plain-object": "^5.0.0", + "node-fetch": "^2.6.7", + "universal-user-agent": "^6.0.0" + }, + "dependencies": { + "@octokit/openapi-types": { + "version": "12.11.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.11.0.tgz", + "integrity": "sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==" + }, + "@octokit/types": { + "version": "6.41.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.41.0.tgz", + "integrity": "sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==", + "requires": { + "@octokit/openapi-types": "^12.11.0" + } + } + } + }, + "@octokit/request-error": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.1.0.tgz", + "integrity": "sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==", + "requires": { + "@octokit/types": "^6.0.3", + "deprecation": "^2.0.0", + "once": "^1.4.0" + }, + "dependencies": { + "@octokit/openapi-types": { + "version": "12.11.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.11.0.tgz", + "integrity": "sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==" + }, + "@octokit/types": { + "version": "6.41.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.41.0.tgz", + "integrity": "sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==", + "requires": { + "@octokit/openapi-types": "^12.11.0" + } + } + } + }, + "@octokit/types": { + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-8.2.1.tgz", + "integrity": "sha512-8oWMUji8be66q2B9PmEIUyQm00VPDPun07umUWSaCwxmeaquFBro4Hcc3ruVoDo3zkQyZBlRvhIMEYS3pBhanw==", + "requires": { + "@octokit/openapi-types": "^14.0.0" + } + }, + "@octokit/webhooks": { + "version": "9.26.0", + "resolved": "https://registry.npmjs.org/@octokit/webhooks/-/webhooks-9.26.0.tgz", + "integrity": "sha512-foZlsgrTDwAmD5j2Czn6ji10lbWjGDVsUxTIydjG9KTkAWKJrFapXJgO5SbGxRwfPd3OJdhK3nA2YPqVhxLXqA==", + "requires": { + "@octokit/request-error": "^2.0.2", + "@octokit/webhooks-methods": "^2.0.0", + "@octokit/webhooks-types": "5.8.0", + "aggregate-error": "^3.1.0" + } + }, + "@octokit/webhooks-methods": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@octokit/webhooks-methods/-/webhooks-methods-2.0.0.tgz", + "integrity": "sha512-35cfQ4YWlnZnmZKmIxlGPUPLtbkF8lr/A/1Sk1eC0ddLMwQN06dOuLc+dI3YLQS+T+MoNt3DIQ0NynwgKPilig==" + }, + "@octokit/webhooks-types": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@octokit/webhooks-types/-/webhooks-types-5.8.0.tgz", + "integrity": "sha512-8adktjIb76A7viIdayQSFuBEwOzwhDC+9yxZpKNHjfzrlostHCw0/N7JWpWMObfElwvJMk2fY2l1noENCk9wmw==" + }, + "@probot/get-private-key": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@probot/get-private-key/-/get-private-key-1.1.1.tgz", + "integrity": "sha512-hOmBNSAhSZc6PaNkTvj6CO9R5J67ODJ+w5XQlDW9w/6mtcpHWK4L+PZcW0YwVM7PpetLZjN6rsKQIR9yqIaWlA==", + "requires": { + "@types/is-base64": "^1.1.0", + "is-base64": "^1.1.0" + } + }, + "@probot/octokit-plugin-config": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/@probot/octokit-plugin-config/-/octokit-plugin-config-1.1.6.tgz", + "integrity": "sha512-L29wmnFvilzSfWn9tUgItxdLv0LJh2ICjma3FmLr80Spu3wZ9nHyRrKMo9R5/K2m7VuWmgoKnkgRt2zPzAQBEQ==", + "requires": { + "@types/js-yaml": "^4.0.5", + "js-yaml": "^4.1.0" + }, + "dependencies": { + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "requires": { + "argparse": "^2.0.1" + } + } + } + }, + "@probot/pino": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@probot/pino/-/pino-2.3.5.tgz", + "integrity": "sha512-IiyiNZonMw1dHC4EAdD55y5owV733d9Gll/IKsrLikB7EJ54+eMCOtL/qo+OmgWN9XV3NTDfziEQF2og/OBKog==", + "requires": { + "@sentry/node": "^6.0.0", + "pino-pretty": "^6.0.0", + "pump": "^3.0.0", + "readable-stream": "^3.6.0", + "split2": "^4.0.0" + } + }, + "@sentry/core": { + "version": "6.19.7", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-6.19.7.tgz", + "integrity": "sha512-tOfZ/umqB2AcHPGbIrsFLcvApdTm9ggpi/kQZFkej7kMphjT+SGBiQfYtjyg9jcRW+ilAR4JXC9BGKsdEQ+8Vw==", + "requires": { + "@sentry/hub": "6.19.7", + "@sentry/minimal": "6.19.7", + "@sentry/types": "6.19.7", + "@sentry/utils": "6.19.7", + "tslib": "^1.9.3" + } + }, + "@sentry/hub": { + "version": "6.19.7", + "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-6.19.7.tgz", + "integrity": "sha512-y3OtbYFAqKHCWezF0EGGr5lcyI2KbaXW2Ik7Xp8Mu9TxbSTuwTe4rTntwg8ngPjUQU3SUHzgjqVB8qjiGqFXCA==", + "requires": { + "@sentry/types": "6.19.7", + "@sentry/utils": "6.19.7", + "tslib": "^1.9.3" + } + }, + "@sentry/minimal": { + "version": "6.19.7", + "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-6.19.7.tgz", + "integrity": "sha512-wcYmSJOdvk6VAPx8IcmZgN08XTXRwRtB1aOLZm+MVHjIZIhHoBGZJYTVQS/BWjldsamj2cX3YGbGXNunaCfYJQ==", + "requires": { + "@sentry/hub": "6.19.7", + "@sentry/types": "6.19.7", + "tslib": "^1.9.3" + } + }, + "@sentry/node": { + "version": "6.19.7", + "resolved": "https://registry.npmjs.org/@sentry/node/-/node-6.19.7.tgz", + "integrity": "sha512-gtmRC4dAXKODMpHXKfrkfvyBL3cI8y64vEi3fDD046uqYcrWdgoQsffuBbxMAizc6Ez1ia+f0Flue6p15Qaltg==", + "requires": { + "@sentry/core": "6.19.7", + "@sentry/hub": "6.19.7", + "@sentry/types": "6.19.7", + "@sentry/utils": "6.19.7", + "cookie": "^0.4.1", + "https-proxy-agent": "^5.0.0", + "lru_map": "^0.3.3", + "tslib": "^1.9.3" + } + }, + "@sentry/types": { + "version": "6.19.7", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-6.19.7.tgz", + "integrity": "sha512-jH84pDYE+hHIbVnab3Hr+ZXr1v8QABfhx39KknxqKWr2l0oEItzepV0URvbEhB446lk/S/59230dlUUIBGsXbg==" + }, + "@sentry/utils": { + "version": "6.19.7", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-6.19.7.tgz", + "integrity": "sha512-z95ECmE3i9pbWoXQrD/7PgkBAzJYR+iXtPuTkpBjDKs86O3mT+PXOT3BAn79w2wkn7/i3vOGD2xVr1uiMl26dA==", + "requires": { + "@sentry/types": "6.19.7", + "tslib": "^1.9.3" + } + }, + "@sinclair/typebox": { + "version": "0.25.24", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.25.24.tgz", + "integrity": "sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==", + "dev": true + }, + "@sinonjs/commons": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", + "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", + "dev": true, + "requires": { + "type-detect": "4.0.8" + } + }, + "@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "dev": true, + "requires": { + "@sinonjs/commons": "^3.0.0" + } + }, + "@types/babel__core": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.1.tgz", + "integrity": "sha512-aACu/U/omhdk15O4Nfb+fHgH/z3QsfQzpnvRZhYhThms83ZnAOZz7zZAWO7mn2yyNQaA4xTO8GLK3uqFU4bYYw==", + "dev": true, + "requires": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "@types/babel__generator": { + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", + "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@types/babel__template": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", + "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", + "dev": true, + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@types/babel__traverse": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.1.tgz", + "integrity": "sha512-MitHFXnhtgwsGZWtT68URpOvLN4EREih1u3QtQiN4VdAxWKRVvGCSvw/Qth0M0Qq3pJpnGOu5JaM/ydK7OGbqg==", + "dev": true, + "requires": { + "@babel/types": "^7.20.7" + } + }, + "@types/body-parser": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", + "requires": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "@types/btoa-lite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/btoa-lite/-/btoa-lite-1.0.0.tgz", + "integrity": "sha512-wJsiX1tosQ+J5+bY5LrSahHxr2wT+uME5UDwdN1kg4frt40euqA+wzECkmq4t5QbveHiJepfdThgQrPw6KiSlg==" + }, + "@types/connect": { + "version": "3.4.35", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "requires": { + "@types/node": "*" + } + }, + "@types/express": { + "version": "4.17.17", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.17.tgz", + "integrity": "sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==", + "requires": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "@types/express-serve-static-core": { + "version": "4.17.35", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.35.tgz", + "integrity": "sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg==", + "requires": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "@types/graceful-fs": { + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz", + "integrity": "sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/ioredis": { + "version": "4.28.10", + "resolved": "https://registry.npmjs.org/@types/ioredis/-/ioredis-4.28.10.tgz", + "integrity": "sha512-69LyhUgrXdgcNDv7ogs1qXZomnfOEnSmrmMFqKgt1XMJxmoOSG/u3wYy13yACIfKuMJ8IhKgHafDO3sx19zVQQ==", + "requires": { + "@types/node": "*" + } + }, + "@types/is-base64": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@types/is-base64/-/is-base64-1.1.1.tgz", + "integrity": "sha512-JgnGhP+MeSHEQmvxcobcwPEP4Ew56voiq9/0hmP/41lyQ/3gBw/ZCIRy2v+QkEOdeCl58lRcrf6+Y6WMlJGETA==" + }, + "@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", + "dev": true + }, + "@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "*" + } + }, + "@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "@types/jest": { + "version": "29.5.2", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.2.tgz", + "integrity": "sha512-mSoZVJF5YzGVCk+FsDxzDuH7s+SCkzrgKZzf0Z0T2WudhBUPoF6ktoTPC4R0ZoCPCV5xUvuU6ias5NvxcBcMMg==", + "dev": true, + "requires": { + "expect": "^29.0.0", + "pretty-format": "^29.0.0" + } + }, + "@types/js-yaml": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-4.0.5.tgz", + "integrity": "sha512-FhpRzf927MNQdRZP0J5DLIdTXhjLYzeUTmLAu69mnVksLH9CJY3IuSeEgbKUki7GQZm0WqDkGzyxju2EZGD2wA==" + }, + "@types/jsonwebtoken": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz", + "integrity": "sha512-drE6uz7QBKq1fYqqoFKTDRdFCPHd5TCub75BM+D+cMx7NU9hUz7SESLfC2fSCXVFMO5Yj8sOWHuGqPgjc+fz0Q==", + "requires": { + "@types/node": "*" + } + }, + "@types/mime": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", + "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==" + }, + "@types/node": { + "version": "18.16.18", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.16.18.tgz", + "integrity": "sha512-/aNaQZD0+iSBAGnvvN2Cx92HqE5sZCPZtx2TsK+4nvV23fFe09jVDvpArXr2j9DnYlzuU9WuoykDDc6wqvpNcw==" + }, + "@types/pino": { + "version": "6.3.12", + "resolved": "https://registry.npmjs.org/@types/pino/-/pino-6.3.12.tgz", + "integrity": "sha512-dsLRTq8/4UtVSpJgl9aeqHvbh6pzdmjYD3C092SYgLD2TyoCqHpTJk6vp8DvCTGGc7iowZ2MoiYiVUUCcu7muw==", + "requires": { + "@types/node": "*", + "@types/pino-pretty": "*", + "@types/pino-std-serializers": "*", + "sonic-boom": "^2.1.0" + } + }, + "@types/pino-http": { + "version": "5.8.1", + "resolved": "https://registry.npmjs.org/@types/pino-http/-/pino-http-5.8.1.tgz", + "integrity": "sha512-A9MW6VCnx5ii7s+Fs5aFIw+aSZcBCpsZ/atpxamu8tTsvWFacxSf2Hrn1Ohn1jkVRB/LiPGOapRXcFawDBnDnA==", + "requires": { + "@types/pino": "6.3" + } + }, + "@types/pino-pretty": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/pino-pretty/-/pino-pretty-5.0.0.tgz", + "integrity": "sha512-N1uzqSzioqz8R3AkDbSJwcfDWeI3YMPNapSQQhnB2ISU4NYgUIcAh+hYT5ygqBM+klX4htpEhXMmoJv3J7GrdA==", + "requires": { + "pino-pretty": "*" + } + }, + "@types/pino-std-serializers": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/pino-std-serializers/-/pino-std-serializers-4.0.0.tgz", + "integrity": "sha512-gXfUZx2xIBbFYozGms53fT0nvkacx/+62c8iTxrEqH5PkIGAQvDbXg2774VWOycMPbqn5YJBQ3BMsg4Li3dWbg==", + "requires": { + "pino-std-serializers": "*" + } + }, + "@types/prettier": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz", + "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==", + "dev": true + }, + "@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" + }, + "@types/range-parser": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", + "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" + }, + "@types/send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.1.tgz", + "integrity": "sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==", + "requires": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "@types/serve-static": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.1.tgz", + "integrity": "sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ==", + "requires": { + "@types/mime": "*", + "@types/node": "*" + } + }, + "@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "dev": true + }, + "@types/yargs": { + "version": "17.0.24", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.24.tgz", + "integrity": "sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "@types/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", + "dev": true + }, + "accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "requires": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + } + }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "requires": { + "debug": "4" + } + }, + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, + "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==", + "dev": true, + "requires": { + "type-fest": "^0.21.3" + } + }, + "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 + }, + "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, + "requires": { + "color-convert": "^2.0.1" + } + }, + "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, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "args": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/args/-/args-5.0.3.tgz", + "integrity": "sha512-h6k/zfFgusnv3i5TU08KQkVKuCPBtL/PWQbWkHUxvJrZ2nAyeaUupneemcrgn1xmqxPQsPIzwkUhOpoqPDRZuA==", + "requires": { + "camelcase": "5.0.0", + "chalk": "2.4.2", + "leven": "2.1.0", + "mri": "1.1.4" + }, + "dependencies": { + "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==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "camelcase": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", + "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==" + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "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==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "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==" + }, + "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==" + }, + "leven": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", + "integrity": "sha512-nvVPLpIHUxCUoRLrFqTgSxXJ614d8AgQoWl7zPe/2VadE8+1dpU3LBhowRuBAcuwruWtOdD8oYC9jDNJjXDPyA==" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, + "atomic-sleep": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", + "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==" + }, + "babel-jest": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.5.0.tgz", + "integrity": "sha512-mA4eCDh5mSo2EcA9xQjVTpmbbNk32Zb3Q3QFQsNhaK56Q+yoXowzFodLux30HRgyOho5rsQ6B0P9QpMkvvnJ0Q==", + "dev": true, + "requires": { + "@jest/transform": "^29.5.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.5.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + } + }, + "babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + } + }, + "babel-plugin-jest-hoist": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.5.0.tgz", + "integrity": "sha512-zSuuuAlTMT4mzLj2nPnUm6fsE6270vdOfnpbJ+RmruU75UhLFvL0N2NgI7xpeS7NaB6hGqmd5pVpGTDYvi4Q3w==", + "dev": true, + "requires": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + } + }, + "babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "requires": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@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-top-level-await": "^7.8.3" + } + }, + "babel-preset-jest": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.5.0.tgz", + "integrity": "sha512-JOMloxOqdiBSxMAzjRaH023/vvcaSaec49zvg+2LmNsktC7ei39LTJGw02J+9uUtTZUq6xbLyJ4dxe9sSmIuAg==", + "dev": true, + "requires": { + "babel-plugin-jest-hoist": "^29.5.0", + "babel-preset-current-node-syntax": "^1.0.0" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "basic-auth": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", + "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", + "dev": true, + "requires": { + "safe-buffer": "5.1.2" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + } + } + }, + "before-after-hook": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz", + "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==" + }, + "body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "requires": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, + "bottleneck": { + "version": "2.19.5", + "resolved": "https://registry.npmjs.org/bottleneck/-/bottleneck-2.19.5.tgz", + "integrity": "sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==" + }, + "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, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "browserslist": { + "version": "4.21.9", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.9.tgz", + "integrity": "sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001503", + "electron-to-chromium": "^1.4.431", + "node-releases": "^2.0.12", + "update-browserslist-db": "^1.0.11" + } + }, + "bs-logger": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", + "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", + "dev": true, + "requires": { + "fast-json-stable-stringify": "2.x" + } + }, + "bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "requires": { + "node-int64": "^0.4.0" + } + }, + "btoa-lite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/btoa-lite/-/btoa-lite-1.0.0.tgz", + "integrity": "sha512-gvW7InbIyF8AicrqWoptdW08pUxuhq8BEgowNajy9RhiE86fmGAGl+bLKo6oB8QP0CkqHLowfN0oJdKC/J6LbA==" + }, + "buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==" + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "caniuse-lite": { + "version": "1.0.30001505", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001505.tgz", + "integrity": "sha512-jaAOR5zVtxHfL0NjZyflVTtXm3D3J9P15zSJ7HmQF8dSKGA6tqzQq+0ZI3xkjyQj46I4/M0K2GbMpcAFOcbr3A==", + "dev": true + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true + }, + "ci-info": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", + "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", + "dev": true + }, + "cjs-module-lexer": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", + "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==", + "dev": true + }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" + }, + "cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + } + }, + "cluster-key-slot": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz", + "integrity": "sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==" + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true + }, + "collect-v8-coverage": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", + "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", + "dev": true + }, + "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, + "requires": { + "color-name": "~1.1.4" + } + }, + "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 + }, + "colorette": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", + "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==" + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==" + }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "requires": { + "safe-buffer": "5.2.1" + } + }, + "content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==" + }, + "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 + }, + "cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==" + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "cookiejar": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.4.tgz", + "integrity": "sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==", + "dev": true + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "dateformat": { + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz", + "integrity": "sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==" + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", + "dev": true + }, + "deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==" + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true + }, + "denque": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/denque/-/denque-1.5.1.tgz", + "integrity": "sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw==" + }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + }, + "deprecation": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", + "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==" + }, + "destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" + }, + "detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true + }, + "dezalgo": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz", + "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==", + "dev": true, + "requires": { + "asap": "^2.0.0", + "wrappy": "1" + } + }, + "diff-sequences": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.4.3.tgz", + "integrity": "sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==", + "dev": true + }, + "dotenv": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz", + "integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==" + }, + "ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "electron-to-chromium": { + "version": "1.4.435", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.435.tgz", + "integrity": "sha512-B0CBWVFhvoQCW/XtjRzgrmqcgVWg6RXOEM/dK59+wFV93BFGR6AeNKc4OyhM+T3IhJaOOG8o/V+33Y2mwJWtzw==", + "dev": true + }, + "emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", + "dev": true + }, + "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 + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" + }, + "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==", + "requires": { + "once": "^1.4.0" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" + }, + "eventsource": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-2.0.2.tgz", + "integrity": "sha512-IzUmBGPR3+oUG9dUeXynyNmf91/3zUSJg1lCktzKw47OXuhco54U3r9B7O4XX+Rb1Itm9OZ2b0RkTs10bICOxA==" + }, + "execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + } + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true + }, + "expect": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.5.0.tgz", + "integrity": "sha512-yM7xqUrCO2JdpFo4XpM82t+PJBFybdqoQuJLDGeDX2ij8NZzqRHyu3Hp188/JX7SWqud+7t4MUdvcgGBICMHZg==", + "dev": true, + "requires": { + "@jest/expect-utils": "^29.5.0", + "jest-get-type": "^29.4.3", + "jest-matcher-utils": "^29.5.0", + "jest-message-util": "^29.5.0", + "jest-util": "^29.5.0" + } + }, + "express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "requires": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==" + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, + "express-handlebars": { + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/express-handlebars/-/express-handlebars-6.0.7.tgz", + "integrity": "sha512-iYeMFpc/hMD+E6FNAZA5fgWeXnXr4rslOSPkeEV6TwdmpJ5lEXuWX0u9vFYs31P2MURctQq2batR09oeNj0LIg==", + "requires": { + "glob": "^8.1.0", + "graceful-fs": "^4.2.10", + "handlebars": "^4.7.7" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "requires": { + "balanced-match": "^1.0.0" + } + }, + "glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + } + }, + "minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "requires": { + "brace-expansion": "^2.0.1" + } + } + } + }, + "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 + }, + "fast-redact": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.2.0.tgz", + "integrity": "sha512-zaTadChr+NekyzallAMXATXLOR8MNx3zqpZ0MUF2aGf4EathnG0f32VLODNlY8IuGY3HoRO2L6/6fSzNsLaHIw==" + }, + "fast-safe-stringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" + }, + "fast-url-parser": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz", + "integrity": "sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==", + "requires": { + "punycode": "^1.3.2" + } + }, + "fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "requires": { + "bser": "2.1.1" + } + }, + "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, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, + "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, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "flatstr": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/flatstr/-/flatstr-1.0.12.tgz", + "integrity": "sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw==" + }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "formidable": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-2.1.2.tgz", + "integrity": "sha512-CM3GuJ57US06mlpQ47YcunuUZ9jpm8Vx+P2CGt2j7HpgkKZO/DJYQ0Bobim8G6PFQmK5lOqOOdUXboU+h73A4g==", + "dev": true, + "requires": { + "dezalgo": "^1.0.4", + "hexoid": "^1.0.0", + "once": "^1.4.0", + "qs": "^6.11.0" + } + }, + "forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "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 + }, + "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 + }, + "get-intrinsic": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" + } + }, + "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 + }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "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" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "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==" + }, + "handlebars": { + "version": "4.7.7", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", + "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", + "requires": { + "minimist": "^1.2.5", + "neo-async": "^2.6.0", + "source-map": "^0.6.1", + "uglify-js": "^3.1.4", + "wordwrap": "^1.0.0" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "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 + }, + "has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==" + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + }, + "hexoid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hexoid/-/hexoid-1.0.0.tgz", + "integrity": "sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==", + "dev": true + }, + "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 + }, + "http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "requires": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + } + }, + "https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "requires": { + "agent-base": "6", + "debug": "4" + } + }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "requires": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true + }, + "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==" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "ioredis": { + "version": "4.28.5", + "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-4.28.5.tgz", + "integrity": "sha512-3GYo0GJtLqgNXj4YhrisLaNNvWSNwSS2wS4OELGfGxH8I69+XfNdnmV1AyN+ZqMh0i7eX+SWjrwFKDBDgfBC1A==", + "requires": { + "cluster-key-slot": "^1.1.0", + "debug": "^4.3.1", + "denque": "^1.1.0", + "lodash.defaults": "^4.2.0", + "lodash.flatten": "^4.4.0", + "lodash.isarguments": "^3.1.0", + "p-map": "^2.1.0", + "redis-commands": "1.7.0", + "redis-errors": "^1.2.0", + "redis-parser": "^3.0.0", + "standard-as-callback": "^2.1.0" + } + }, + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + }, + "is-base64": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-base64/-/is-base64-1.1.0.tgz", + "integrity": "sha512-Nlhg7Z2dVC4/PTvIFkgVVNvPHSO2eR/Yd0XzhGiXCXEvWnptXlXa/clQ8aePPiMuxEGcWfzWbGw2Fe3d+Y3v1g==" + }, + "is-core-module": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", + "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", + "requires": { + "has": "^1.0.3" + } + }, + "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==", + "dev": true + }, + "is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true + }, + "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 + }, + "is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==" + }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "dev": true + }, + "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, + "requires": { + "@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" + } + }, + "istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + } + }, + "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, + "requires": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + } + }, + "istanbul-reports": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", + "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", + "dev": true, + "requires": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + } + }, + "jest": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.5.0.tgz", + "integrity": "sha512-juMg3he2uru1QoXX078zTa7pO85QyB9xajZc6bU+d9yEGwrKX6+vGmJQ3UdVZsvTEUARIdObzH68QItim6OSSQ==", + "dev": true, + "requires": { + "@jest/core": "^29.5.0", + "@jest/types": "^29.5.0", + "import-local": "^3.0.2", + "jest-cli": "^29.5.0" + } + }, + "jest-changed-files": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.5.0.tgz", + "integrity": "sha512-IFG34IUMUaNBIxjQXF/iu7g6EcdMrGRRxaUSw92I/2g2YC6vCdTltl4nHvt7Ci5nSJwXIkCu8Ka1DKF+X7Z1Ag==", + "dev": true, + "requires": { + "execa": "^5.0.0", + "p-limit": "^3.1.0" + } + }, + "jest-circus": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.5.0.tgz", + "integrity": "sha512-gq/ongqeQKAplVxqJmbeUOJJKkW3dDNPY8PjhJ5G0lBRvu0e3EWGxGy5cI4LAGA7gV2UHCtWBI4EMXK8c9nQKA==", + "dev": true, + "requires": { + "@jest/environment": "^29.5.0", + "@jest/expect": "^29.5.0", + "@jest/test-result": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.5.0", + "jest-matcher-utils": "^29.5.0", + "jest-message-util": "^29.5.0", + "jest-runtime": "^29.5.0", + "jest-snapshot": "^29.5.0", + "jest-util": "^29.5.0", + "p-limit": "^3.1.0", + "pretty-format": "^29.5.0", + "pure-rand": "^6.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + } + }, + "jest-cli": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.5.0.tgz", + "integrity": "sha512-L1KcP1l4HtfwdxXNFCL5bmUbLQiKrakMUriBEcc1Vfz6gx31ORKdreuWvmQVBit+1ss9NNR3yxjwfwzZNdQXJw==", + "dev": true, + "requires": { + "@jest/core": "^29.5.0", + "@jest/test-result": "^29.5.0", + "@jest/types": "^29.5.0", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^29.5.0", + "jest-util": "^29.5.0", + "jest-validate": "^29.5.0", + "prompts": "^2.0.1", + "yargs": "^17.3.1" + }, + "dependencies": { + "jest-config": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.5.0.tgz", + "integrity": "sha512-kvDUKBnNJPNBmFFOhDbm59iu1Fii1Q6SxyhXfvylq3UTHbg6o7j/g8k2dZyXWLvfdKB1vAPxNZnMgtKJcmu3kA==", + "dev": true, + "requires": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.5.0", + "@jest/types": "^29.5.0", + "babel-jest": "^29.5.0", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.5.0", + "jest-environment-node": "^29.5.0", + "jest-get-type": "^29.4.3", + "jest-regex-util": "^29.4.3", + "jest-resolve": "^29.5.0", + "jest-runner": "^29.5.0", + "jest-util": "^29.5.0", + "jest-validate": "^29.5.0", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.5.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + } + }, + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + } + } + }, + "jest-diff": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.5.0.tgz", + "integrity": "sha512-LtxijLLZBduXnHSniy0WMdaHjmQnt3g5sa16W4p0HqukYTTsyTW3GD1q41TyGl5YFXj/5B2U6dlh5FM1LIMgxw==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "diff-sequences": "^29.4.3", + "jest-get-type": "^29.4.3", + "pretty-format": "^29.5.0" + } + }, + "jest-docblock": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.4.3.tgz", + "integrity": "sha512-fzdTftThczeSD9nZ3fzA/4KkHtnmllawWrXO69vtI+L9WjEIuXWs4AmyME7lN5hU7dB0sHhuPfcKofRsUb/2Fg==", + "dev": true, + "requires": { + "detect-newline": "^3.0.0" + } + }, + "jest-each": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.5.0.tgz", + "integrity": "sha512-HM5kIJ1BTnVt+DQZ2ALp3rzXEl+g726csObrW/jpEGl+CDSSQpOJJX2KE/vEg8cxcMXdyEPu6U4QX5eruQv5hA==", + "dev": true, + "requires": { + "@jest/types": "^29.5.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.4.3", + "jest-util": "^29.5.0", + "pretty-format": "^29.5.0" + } + }, + "jest-environment-node": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.5.0.tgz", + "integrity": "sha512-ExxuIK/+yQ+6PRGaHkKewYtg6hto2uGCgvKdb2nfJfKXgZ17DfXjvbZ+jA1Qt9A8EQSfPnt5FKIfnOO3u1h9qw==", + "dev": true, + "requires": { + "@jest/environment": "^29.5.0", + "@jest/fake-timers": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/node": "*", + "jest-mock": "^29.5.0", + "jest-util": "^29.5.0" + } + }, + "jest-get-type": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.4.3.tgz", + "integrity": "sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg==", + "dev": true + }, + "jest-haste-map": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.5.0.tgz", + "integrity": "sha512-IspOPnnBro8YfVYSw6yDRKh/TiCdRngjxeacCps1cQ9cgVN6+10JUcuJ1EabrgYLOATsIAigxA0rLR9x/YlrSA==", + "dev": true, + "requires": { + "@jest/types": "^29.5.0", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.3.2", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.4.3", + "jest-util": "^29.5.0", + "jest-worker": "^29.5.0", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + } + }, + "jest-leak-detector": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.5.0.tgz", + "integrity": "sha512-u9YdeeVnghBUtpN5mVxjID7KbkKE1QU4f6uUwuxiY0vYRi9BUCLKlPEZfDGR67ofdFmDz9oPAy2G92Ujrntmow==", + "dev": true, + "requires": { + "jest-get-type": "^29.4.3", + "pretty-format": "^29.5.0" + } + }, + "jest-matcher-utils": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.5.0.tgz", + "integrity": "sha512-lecRtgm/rjIK0CQ7LPQwzCs2VwW6WAahA55YBuI+xqmhm7LAaxokSB8C97yJeYyT+HvQkH741StzpU41wohhWw==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "jest-diff": "^29.5.0", + "jest-get-type": "^29.4.3", + "pretty-format": "^29.5.0" + } + }, + "jest-message-util": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.5.0.tgz", + "integrity": "sha512-Kijeg9Dag6CKtIDA7O21zNTACqD5MD/8HfIV8pdD94vFyFuer52SigdC3IQMhab3vACxXMiFk+yMHNdbqtyTGA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.5.0", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.5.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + } + }, + "jest-mock": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.5.0.tgz", + "integrity": "sha512-GqOzvdWDE4fAV2bWQLQCkujxYWL7RxjCnj71b5VhDAGOevB3qj3Ovg26A5NI84ZpODxyzaozXLOh2NCgkbvyaw==", + "dev": true, + "requires": { + "@jest/types": "^29.5.0", + "@types/node": "*", + "jest-util": "^29.5.0" + } + }, + "jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "dev": true, + "requires": {} + }, + "jest-regex-util": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.4.3.tgz", + "integrity": "sha512-O4FglZaMmWXbGHSQInfXewIsd1LMn9p3ZXB/6r4FOkyhX2/iP/soMG98jGvk/A3HAN78+5VWcBGO0BJAPRh4kg==", + "dev": true + }, + "jest-resolve": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.5.0.tgz", + "integrity": "sha512-1TzxJ37FQq7J10jPtQjcc+MkCkE3GBpBecsSUWJ0qZNJpmg6m0D9/7II03yJulm3H/fvVjgqLh/k2eYg+ui52w==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.5.0", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.5.0", + "jest-validate": "^29.5.0", + "resolve": "^1.20.0", + "resolve.exports": "^2.0.0", + "slash": "^3.0.0" + } + }, + "jest-resolve-dependencies": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.5.0.tgz", + "integrity": "sha512-sjV3GFr0hDJMBpYeUuGduP+YeCRbd7S/ck6IvL3kQ9cpySYKqcqhdLLC2rFwrcL7tz5vYibomBrsFYWkIGGjOg==", + "dev": true, + "requires": { + "jest-regex-util": "^29.4.3", + "jest-snapshot": "^29.5.0" + } + }, + "jest-runner": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.5.0.tgz", + "integrity": "sha512-m7b6ypERhFghJsslMLhydaXBiLf7+jXy8FwGRHO3BGV1mcQpPbwiqiKUR2zU2NJuNeMenJmlFZCsIqzJCTeGLQ==", + "dev": true, + "requires": { + "@jest/console": "^29.5.0", + "@jest/environment": "^29.5.0", + "@jest/test-result": "^29.5.0", + "@jest/transform": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.4.3", + "jest-environment-node": "^29.5.0", + "jest-haste-map": "^29.5.0", + "jest-leak-detector": "^29.5.0", + "jest-message-util": "^29.5.0", + "jest-resolve": "^29.5.0", + "jest-runtime": "^29.5.0", + "jest-util": "^29.5.0", + "jest-watcher": "^29.5.0", + "jest-worker": "^29.5.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + } + }, + "jest-runtime": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.5.0.tgz", + "integrity": "sha512-1Hr6Hh7bAgXQP+pln3homOiEZtCDZFqwmle7Ew2j8OlbkIu6uE3Y/etJQG8MLQs3Zy90xrp2C0BRrtPHG4zryw==", + "dev": true, + "requires": { + "@jest/environment": "^29.5.0", + "@jest/fake-timers": "^29.5.0", + "@jest/globals": "^29.5.0", + "@jest/source-map": "^29.4.3", + "@jest/test-result": "^29.5.0", + "@jest/transform": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/node": "*", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.5.0", + "jest-message-util": "^29.5.0", + "jest-mock": "^29.5.0", + "jest-regex-util": "^29.4.3", + "jest-resolve": "^29.5.0", + "jest-snapshot": "^29.5.0", + "jest-util": "^29.5.0", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + } + }, + "jest-snapshot": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.5.0.tgz", + "integrity": "sha512-x7Wolra5V0tt3wRs3/ts3S6ciSQVypgGQlJpz2rsdQYoUKxMxPNaoHMGJN6qAuPJqS+2iQ1ZUn5kl7HCyls84g==", + "dev": true, + "requires": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.5.0", + "@jest/transform": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/babel__traverse": "^7.0.6", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^29.5.0", + "graceful-fs": "^4.2.9", + "jest-diff": "^29.5.0", + "jest-get-type": "^29.4.3", + "jest-matcher-utils": "^29.5.0", + "jest-message-util": "^29.5.0", + "jest-util": "^29.5.0", + "natural-compare": "^1.4.0", + "pretty-format": "^29.5.0", + "semver": "^7.3.5" + }, + "dependencies": { + "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==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.2.tgz", + "integrity": "sha512-SoftuTROv/cRjCze/scjGyiDtcUyxw1rgYQSZY7XTmtR5hX+dm76iDbTH8TkLPHCQmlbQVSSbNZCPM2hb0knnQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "jest-util": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.5.0.tgz", + "integrity": "sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ==", + "dev": true, + "requires": { + "@jest/types": "^29.5.0", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + } + }, + "jest-validate": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.5.0.tgz", + "integrity": "sha512-pC26etNIi+y3HV8A+tUGr/lph9B18GnzSRAkPaaZJIE1eFdiYm6/CewuiJQ8/RlfHd1u/8Ioi8/sJ+CmbA+zAQ==", + "dev": true, + "requires": { + "@jest/types": "^29.5.0", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.4.3", + "leven": "^3.1.0", + "pretty-format": "^29.5.0" + }, + "dependencies": { + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true + } + } + }, + "jest-watcher": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.5.0.tgz", + "integrity": "sha512-KmTojKcapuqYrKDpRwfqcQ3zjMlwu27SYext9pt4GlF5FUgB+7XE1mcCnSm6a4uUpFyQIkb6ZhzZvHl+jiBCiA==", + "dev": true, + "requires": { + "@jest/test-result": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "jest-util": "^29.5.0", + "string-length": "^4.0.1" + } + }, + "jest-worker": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.5.0.tgz", + "integrity": "sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA==", + "dev": true, + "requires": { + "@types/node": "*", + "jest-util": "^29.5.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "dependencies": { + "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, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jmespath": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz", + "integrity": "sha512-+kHj8HXArPfpPEKGLZ+kB5ONRTCiGQXo8RQYL0hH8t6pWXUBBK5KkkQmTNOwKK4LEsd0yTsgtjJVm4UBSZea4w==" + }, + "joycon": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/joycon/-/joycon-3.1.1.tgz", + "integrity": "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==" + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "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==", + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" + }, + "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 + }, + "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==", + "dev": true + }, + "json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true + }, + "jsonwebtoken": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.0.tgz", + "integrity": "sha512-tuGfYXxkQGDPnLJ7SibiQgVgeDgfbPq2k2ICcbgqW8WxWLBAxKQM/ZCu/IT8SOSwmaYl4dpTFCW5xZv7YbbWUw==", + "requires": { + "jws": "^3.2.2", + "lodash": "^4.17.21", + "ms": "^2.1.1", + "semver": "^7.3.8" + }, + "dependencies": { + "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==", + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.2.tgz", + "integrity": "sha512-SoftuTROv/cRjCze/scjGyiDtcUyxw1rgYQSZY7XTmtR5hX+dm76iDbTH8TkLPHCQmlbQVSSbNZCPM2hb0knnQ==", + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + } + }, + "jwa": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", + "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", + "requires": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "jws": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "requires": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } + }, + "kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true + }, + "leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true + }, + "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 + }, + "load-json-file": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-5.3.0.tgz", + "integrity": "sha512-cJGP40Jc/VXUsp8/OrnyKyTZ1y6v/dphm3bioS+RrKXjK2BB6wHUd6JptZEFDGgGahMT+InnZO5i1Ei9mpC8Bw==", + "requires": { + "graceful-fs": "^4.1.15", + "parse-json": "^4.0.0", + "pify": "^4.0.1", + "strip-bom": "^3.0.0", + "type-fest": "^0.3.0" + }, + "dependencies": { + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==" + }, + "type-fest": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", + "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==" + } + } + }, + "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, + "requires": { + "p-locate": "^4.1.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "lodash.defaults": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", + "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==" + }, + "lodash.flatten": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", + "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==" + }, + "lodash.isarguments": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", + "integrity": "sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==" + }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true + }, + "lru_map": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz", + "integrity": "sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ==" + }, + "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, + "requires": { + "yallist": "^3.0.2" + } + }, + "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, + "requires": { + "semver": "^6.0.0" + } + }, + "make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "requires": { + "tmpl": "1.0.5" + } + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==" + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, + "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==", + "dev": true + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==" + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "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==", + "requires": { + "mime-db": "1.52.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" + }, + "morgan": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz", + "integrity": "sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==", + "dev": true, + "requires": { + "basic-auth": "~2.0.1", + "debug": "2.6.9", + "depd": "~2.0.0", + "on-finished": "~2.3.0", + "on-headers": "~1.0.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + } + } + }, + "mri": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.1.4.tgz", + "integrity": "sha512-6y7IjGPm8AzlvoUrwAaw1tLnUBudaS3752vcd8JtrpGGQn+rXIe63LFVHm/YMwtqAuh+LJPCFdlLYPWM1nYn6w==" + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" + }, + "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==" + }, + "nock": { + "version": "13.3.1", + "resolved": "https://registry.npmjs.org/nock/-/nock-13.3.1.tgz", + "integrity": "sha512-vHnopocZuI93p2ccivFyGuUfzjq2fxNyNurp7816mlT5V5HF4SzXu8lvLrVzBbNqzs+ODooZ6OksuSUNM7Njkw==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "json-stringify-safe": "^5.0.1", + "lodash": "^4.17.21", + "propagate": "^2.0.0" + } + }, + "node-fetch": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.11.tgz", + "integrity": "sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w==", + "requires": { + "whatwg-url": "^5.0.0" + } + }, + "node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true + }, + "node-releases": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.12.tgz", + "integrity": "sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ==", + "dev": true + }, + "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 + }, + "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==", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "object-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==" + }, + "octokit-auth-probot": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/octokit-auth-probot/-/octokit-auth-probot-1.2.9.tgz", + "integrity": "sha512-mMjw6Y760EwJnW2tSVooJK8BMdsG6D40SoCclnefVf/5yWjaNVquEu8NREBVWb60OwbpnMEz4vREXHB5xdMFYQ==", + "requires": { + "@octokit/auth-app": "^4.0.2", + "@octokit/auth-token": "^3.0.0", + "@octokit/auth-unauthenticated": "^3.0.0", + "@octokit/types": "^8.0.0" + }, + "dependencies": { + "@octokit/auth-token": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.4.tgz", + "integrity": "sha512-TWFX7cZF2LXoCvdmJWY7XVPi74aSY0+FfBZNSXEXFkMpjcqsQwDSYVv5FhRFaI0V1ECnwbz4j59T/G+rXNWaIQ==" + } + } + }, + "on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "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, + "requires": { + "p-limit": "^2.2.0" + }, + "dependencies": { + "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, + "requires": { + "p-try": "^2.0.0" + } + } + } + }, + "p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==" + }, + "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==" + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + }, + "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 + }, + "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 + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "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==" + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" + }, + "pino": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/pino/-/pino-6.14.0.tgz", + "integrity": "sha512-iuhEDel3Z3hF9Jfe44DPXR8l07bhjuFY3GMHIXbjnY9XcafbyDDwl2sN2vw2GjMPf5Nkoe+OFao7ffn9SXaKDg==", + "requires": { + "fast-redact": "^3.0.0", + "fast-safe-stringify": "^2.0.8", + "flatstr": "^1.0.12", + "pino-std-serializers": "^3.1.0", + "process-warning": "^1.0.0", + "quick-format-unescaped": "^4.0.3", + "sonic-boom": "^1.0.2" + }, + "dependencies": { + "pino-std-serializers": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-3.2.0.tgz", + "integrity": "sha512-EqX4pwDPrt3MuOAAUBMU0Tk5kR/YcCM5fNPEzgCO2zJ5HfX0vbiH9HbJglnyeQsN96Kznae6MWD47pZB5avTrg==" + }, + "sonic-boom": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-1.4.1.tgz", + "integrity": "sha512-LRHh/A8tpW7ru89lrlkU4AszXt1dbwSjVWguGrmlxE7tawVmDBlI1PILMkXAxJTwqhgsEeTHzj36D5CmHgQmNg==", + "requires": { + "atomic-sleep": "^1.0.0", + "flatstr": "^1.0.12" + } + } + } + }, + "pino-http": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/pino-http/-/pino-http-5.8.0.tgz", + "integrity": "sha512-YwXiyRb9y0WCD1P9PcxuJuh3Dc5qmXde/paJE86UGYRdiFOi828hR9iUGmk5gaw6NBT9gLtKANOHFimvh19U5w==", + "requires": { + "fast-url-parser": "^1.1.3", + "pino": "^6.13.0", + "pino-std-serializers": "^4.0.0" + }, + "dependencies": { + "pino-std-serializers": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-4.0.0.tgz", + "integrity": "sha512-cK0pekc1Kjy5w9V2/n+8MkZwusa6EyyxfeQCB799CQRhRt/CqYKiWs5adeu8Shve2ZNffvfC/7J64A2PJo1W/Q==" + } + } + }, + "pino-pretty": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/pino-pretty/-/pino-pretty-6.0.0.tgz", + "integrity": "sha512-jyeR2fXXWc68st1DTTM5NhkHlx8p+1fKZMfm84Jwq+jSw08IwAjNaZBZR6ts69hhPOfOjg/NiE1HYW7vBRPL3A==", + "requires": { + "@hapi/bourne": "^2.0.0", + "args": "^5.0.1", + "colorette": "^1.3.0", + "dateformat": "^4.5.1", + "fast-safe-stringify": "^2.0.7", + "jmespath": "^0.15.0", + "joycon": "^3.0.0", + "pump": "^3.0.0", + "readable-stream": "^3.6.0", + "rfdc": "^1.3.0", + "split2": "^3.1.1", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "split2": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", + "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", + "requires": { + "readable-stream": "^3.0.0" + } + } + } + }, + "pino-std-serializers": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-6.2.1.tgz", + "integrity": "sha512-wHuWB+CvSVb2XqXM0W/WOYUkVSPbiJb9S5fNB7TBhd8s892Xq910bRxwHtC4l71hgztObTjXL6ZheZXFjhDrDQ==" + }, + "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 + }, + "pkg-conf": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-3.1.0.tgz", + "integrity": "sha512-m0OTbR/5VPNPqO1ph6Fqbj7Hv6QU7gR/tQW40ZqrL1rjgCU85W6C1bJn0BItuJqnR98PWzw7Z8hHeChD1WrgdQ==", + "requires": { + "find-up": "^3.0.0", + "load-json-file": "^5.2.0" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "requires": { + "p-limit": "^2.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==" + } + } + }, + "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, + "requires": { + "find-up": "^4.0.0" + } + }, + "pretty-format": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.5.0.tgz", + "integrity": "sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw==", + "dev": true, + "requires": { + "@jest/schemas": "^29.4.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + } + } + }, + "probot": { + "version": "12.3.1", + "resolved": "https://registry.npmjs.org/probot/-/probot-12.3.1.tgz", + "integrity": "sha512-ECSgycmAC0ILEK6cOa+x3QPufP5JybsuohOFCYr3glQU5SkbmypZJE/Sfio9mxAFHK5LCXveIDsfZCxf6ck4JA==", + "requires": { + "@octokit/core": "^3.2.4", + "@octokit/plugin-enterprise-compatibility": "^1.2.8", + "@octokit/plugin-paginate-rest": "^2.6.2", + "@octokit/plugin-rest-endpoint-methods": "^5.0.1", + "@octokit/plugin-retry": "^3.0.6", + "@octokit/plugin-throttling": "^3.3.4", + "@octokit/types": "^8.0.0", + "@octokit/webhooks": "^9.8.4", + "@probot/get-private-key": "^1.1.0", + "@probot/octokit-plugin-config": "^1.0.0", + "@probot/pino": "^2.2.0", + "@types/express": "^4.17.9", + "@types/ioredis": "^4.27.1", + "@types/pino": "^6.3.4", + "@types/pino-http": "^5.0.6", + "commander": "^6.2.0", + "deepmerge": "^4.2.2", + "deprecation": "^2.3.1", + "dotenv": "^8.2.0", + "eventsource": "^2.0.2", + "express": "^4.17.1", + "express-handlebars": "^6.0.3", + "ioredis": "^4.27.8", + "js-yaml": "^3.14.1", + "lru-cache": "^6.0.0", + "octokit-auth-probot": "^1.2.2", + "pino": "^6.7.0", + "pino-http": "^5.3.0", + "pkg-conf": "^3.1.0", + "resolve": "^1.19.0", + "semver": "^7.3.4", + "update-dotenv": "^1.1.1", + "uuid": "^8.3.2" + }, + "dependencies": { + "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==", + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.2.tgz", + "integrity": "sha512-SoftuTROv/cRjCze/scjGyiDtcUyxw1rgYQSZY7XTmtR5hX+dm76iDbTH8TkLPHCQmlbQVSSbNZCPM2hb0knnQ==", + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + } + }, + "process-warning": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-1.0.0.tgz", + "integrity": "sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q==" + }, + "prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "requires": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + } + }, + "propagate": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/propagate/-/propagate-2.0.1.tgz", + "integrity": "sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag==", + "dev": true + }, + "proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "requires": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==" + }, + "pure-rand": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.2.tgz", + "integrity": "sha512-6Yg0ekpKICSjPswYOuC5sku/TSWaRYlA0qsXqJgM/d/4pLPHPuTxK7Nbf7jFKzAeedUhR8C7K9Uv63FBsSo8xQ==", + "dev": true + }, + "qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "requires": { + "side-channel": "^1.0.4" + } + }, + "quick-format-unescaped": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz", + "integrity": "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==" + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" + }, + "raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "requires": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "redis-commands": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/redis-commands/-/redis-commands-1.7.0.tgz", + "integrity": "sha512-nJWqw3bTFy21hX/CPKHth6sfhZbdiHP6bTawSgQBlKOVRG7EZkfHbbHwQJnrE4vsQf0CMNE+3gJ4Fmm16vdVlQ==" + }, + "redis-errors": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/redis-errors/-/redis-errors-1.2.0.tgz", + "integrity": "sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==" + }, + "redis-parser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redis-parser/-/redis-parser-3.0.0.tgz", + "integrity": "sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==", + "requires": { + "redis-errors": "^1.0.0" + } + }, + "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 + }, + "resolve": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", + "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "requires": { + "is-core-module": "^2.11.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "requires": { + "resolve-from": "^5.0.0" + } + }, + "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 + }, + "resolve.exports": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", + "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", + "dev": true + }, + "rfdc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", + "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==" + }, + "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==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "requires": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + } + } + }, + "serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + } + }, + "setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "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==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "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 + }, + "sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "smee-client": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/smee-client/-/smee-client-1.2.3.tgz", + "integrity": "sha512-uDrU8u9/Ln7aRXyzGHgVaNUS8onHZZeSwQjCdkMoSL7U85xI+l+Y2NgjibkMJAyXkW7IAbb8rw9RMHIjS6lAwA==", + "dev": true, + "requires": { + "commander": "^2.19.0", + "eventsource": "^1.1.0", + "morgan": "^1.9.1", + "superagent": "^7.1.3", + "validator": "^13.7.0" + }, + "dependencies": { + "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==", + "dev": true + }, + "eventsource": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.1.2.tgz", + "integrity": "sha512-xAH3zWhgO2/3KIniEKYPr8plNSzlGINOUqYj0m0u7AB81iRw8b/3E73W6AuU+6klLbaSFmZnaETQ2lXPfAydrA==", + "dev": true + } + } + }, + "sonic-boom": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-2.8.0.tgz", + "integrity": "sha512-kuonw1YOYYNOve5iHdSahXPOK49GqwA+LZhI6Wz/l0rP57iKyXXIHaRagOBHAPmGwJC6od2Z9zgvZ5loSgMlVg==", + "requires": { + "atomic-sleep": "^1.0.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "split2": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==" + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + }, + "stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "requires": { + "escape-string-regexp": "^2.0.0" + } + }, + "standard-as-callback": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/standard-as-callback/-/standard-as-callback-2.1.0.tgz", + "integrity": "sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==" + }, + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" + } + }, + "string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "requires": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + } + }, + "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, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "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, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "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 + }, + "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==", + "dev": true + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" + }, + "superagent": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/superagent/-/superagent-7.1.5.tgz", + "integrity": "sha512-HQYyGuDRFGmZ6GNC4hq2f37KnsY9Lr0/R1marNZTgMweVDQLTLJJ6DGQ9Tj/xVVs5HEnop9EMmTbywb5P30aqw==", + "dev": true, + "requires": { + "component-emitter": "^1.3.0", + "cookiejar": "^2.1.3", + "debug": "^4.3.4", + "fast-safe-stringify": "^2.1.1", + "form-data": "^4.0.0", + "formidable": "^2.0.1", + "methods": "^1.1.2", + "mime": "^2.5.0", + "qs": "^6.10.3", + "readable-stream": "^3.6.0", + "semver": "^7.3.7" + }, + "dependencies": { + "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==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true + }, + "semver": { + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.2.tgz", + "integrity": "sha512-SoftuTROv/cRjCze/scjGyiDtcUyxw1rgYQSZY7XTmtR5hX+dm76iDbTH8TkLPHCQmlbQVSSbNZCPM2hb0knnQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "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, + "requires": { + "has-flag": "^4.0.0" + } + }, + "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==" + }, + "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, + "requires": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + } + }, + "tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, + "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==", + "dev": true + }, + "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, + "requires": { + "is-number": "^7.0.0" + } + }, + "toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" + }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "ts-jest": { + "version": "29.1.0", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.0.tgz", + "integrity": "sha512-ZhNr7Z4PcYa+JjMl62ir+zPiNJfXJN6E8hSLnaUKhOgqcn8vb3e537cpkd0FuAfRK3sR1LSqM1MOhliXNgOFPA==", + "dev": true, + "requires": { + "bs-logger": "0.x", + "fast-json-stable-stringify": "2.x", + "jest-util": "^29.0.0", + "json5": "^2.2.3", + "lodash.memoize": "4.x", + "make-error": "1.x", + "semver": "7.x", + "yargs-parser": "^21.0.1" + }, + "dependencies": { + "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==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.2.tgz", + "integrity": "sha512-SoftuTROv/cRjCze/scjGyiDtcUyxw1rgYQSZY7XTmtR5hX+dm76iDbTH8TkLPHCQmlbQVSSbNZCPM2hb0knnQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true + }, + "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==", + "dev": true + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "dev": true + }, + "uglify-js": { + "version": "3.17.4", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", + "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", + "optional": true + }, + "universal-github-app-jwt": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/universal-github-app-jwt/-/universal-github-app-jwt-1.1.1.tgz", + "integrity": "sha512-G33RTLrIBMFmlDV4u4CBF7dh71eWwykck4XgaxaIVeZKOYZRAAxvcGMRFTUclVY6xoUPQvO4Ne5wKGxYm/Yy9w==", + "requires": { + "@types/jsonwebtoken": "^9.0.0", + "jsonwebtoken": "^9.0.0" + } + }, + "universal-user-agent": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz", + "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==" + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" + }, + "update-browserslist-db": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", + "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", + "dev": true, + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + }, + "update-dotenv": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/update-dotenv/-/update-dotenv-1.1.1.tgz", + "integrity": "sha512-3cIC18In/t0X/yH793c00qqxcKD8jVCgNOPif/fGQkFpYMGecM9YAc+kaAKXuZsM2dE9I9wFI7KvAuNX22SGMQ==", + "requires": {} + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==" + }, + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" + }, + "v8-to-istanbul": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz", + "integrity": "sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0" + }, + "dependencies": { + "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 + } + } + }, + "validator": { + "version": "13.9.0", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.9.0.tgz", + "integrity": "sha512-B+dGG8U3fdtM0/aNK4/X8CXq/EcxU2WPrPEkJGslb47qyHsxmbggTWK0yEA4qnYVNF+nxNlN88o14hIcPmSIEA==", + "dev": true + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" + }, + "walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "requires": { + "makeerror": "1.0.12" + } + }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==" + }, + "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, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + } + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "requires": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + } + }, + "yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true + }, + "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==", + "dev": true + } + } +} diff --git a/secret-engine/package.json b/secret-engine/package.json new file mode 100644 index 000000000..4e3fe7b38 --- /dev/null +++ b/secret-engine/package.json @@ -0,0 +1,34 @@ +{ + "name": "secret-engine", + "version": "1.0.0", + "private": true, + "description": "Infisical secret engine", + "author": "Maidul Islam", + "license": "ISC", + "homepage": "https://github.com//", + "keywords": [ + "probot", + "github", + "probot-app" + ], + "scripts": { + "build": "tsc", + "start": "npm run build && probot run ./lib/index.js", + "test": "jest" + }, + "dependencies": { + "probot": "^12.2.4" + }, + "devDependencies": { + "@types/jest": "^29.0.0", + "@types/node": "^18.0.0", + "jest": "^29.0.0", + "nock": "^13.0.5", + "smee-client": "^1.2.2", + "ts-jest": "^29.0.0", + "typescript": "^4.1.3" + }, + "engines": { + "node": ">= 10.13.0" + } +} diff --git a/secret-engine/src/index.ts b/secret-engine/src/index.ts new file mode 100644 index 000000000..6a778f306 --- /dev/null +++ b/secret-engine/src/index.ts @@ -0,0 +1,151 @@ +import { Probot } from "probot"; +import { exec } from "child_process"; +import { writeFile, readFile, rm, mkdir, } from "fs"; +import { tmpdir } from "os"; +import { join } from "path" + +// interface CommandResult { +// stdout: string; +// stderr: string; +// } + +type SecretMatch = { + Description: string; + StartLine: number; + EndLine: number; + StartColumn: number; + EndColumn: number; + Match: string; + Secret: string; + File: string; + SymlinkFile: string; + Commit: string; + Entropy: number; + Author: string; + Email: string; + Date: string; + Message: string; + Tags: string[]; + RuleID: string; + Fingerprint: string; +}; + +export = (app: Probot) => { + app.on("pull_request", async (context) => { + // create a check + }) + + app.on("push", async (context) => { + console.log("something was pushed") + const { payload } = context; + const { commits, repository } = payload; + const [owner, repo] = repository.full_name.split('/'); + + const fingerPrints: any = [] + for (const commit of commits) { + for (const filepath of [...commit.added, ...commit.modified]) { + try { + const fileContentsResponse = await context.octokit.repos.getContent({ + owner, + repo, + path: filepath, + }); + + const data: any = fileContentsResponse.data; + const fileContent = Buffer.from(data.content, 'base64').toString(); + + const findings = await scanContentAndGetFindings(`\n${fileContent}`) // to count lines correctly + + for (const finding of findings) { + fingerPrints.push(`${commit.id}:${filepath}:${finding.RuleID}:${finding.StartLine}`) + } + + } catch (error) { + console.error(`Error fetching content for ${filepath}`, error); + } + } + } + + console.log("fingerPrints==>", fingerPrints) + }); +}; + +async function scanContentAndGetFindings(textContent: string): Promise { + const tempFolder = await createTempFolder(); + const filePath = join(tempFolder, "content.txt"); + const findingsPath = join(tempFolder, "findings.json"); + + try { + await writeTextToFile(filePath, textContent); + await runInfisicalScan(filePath, findingsPath); + const findingsData = await readFindingsFile(findingsPath); + return JSON.parse(findingsData); + } finally { + await deleteTempFolder(tempFolder); + } +} + +function createTempFolder(): Promise { + return new Promise((resolve, reject) => { + const tempDir = tmpdir() + const tempFolderName = Math.random().toString(36).substring(2); + const tempFolderPath = join(tempDir, tempFolderName); + + mkdir(tempFolderPath, (err: any) => { + if (err) { + reject(err); + } else { + resolve(tempFolderPath); + } + }); + }); +} + +function writeTextToFile(filePath: string, content: string): Promise { + return new Promise((resolve, reject) => { + writeFile(filePath, content, (err) => { + if (err) { + reject(err); + } else { + resolve(); + } + }); + }); +} + +function runInfisicalScan(inputPath: string, outputPath: string): Promise { + return new Promise((resolve, reject) => { + const command = `cat "${inputPath}" | infisical scan --exit-code=77 --pipe -r "${outputPath}"`; + exec(command, (error) => { + if (error && error.code != 77) { + reject(error); + } else { + resolve(); + } + }); + }); +} + +function readFindingsFile(filePath: string): Promise { + return new Promise((resolve, reject) => { + readFile(filePath, "utf8", (err, data) => { + if (err) { + reject(err); + } else { + resolve(data); + } + }); + }); +} + +function deleteTempFolder(folderPath: string): Promise { + return new Promise((resolve, reject) => { + rm(folderPath, { recursive: true }, (err) => { + if (err) { + reject(err); + } else { + resolve(); + } + }); + }); +} diff --git a/secret-engine/test/fixtures/issues.opened.json b/secret-engine/test/fixtures/issues.opened.json new file mode 100644 index 000000000..e570cd41b --- /dev/null +++ b/secret-engine/test/fixtures/issues.opened.json @@ -0,0 +1,18 @@ +{ + "action": "opened", + "issue": { + "number": 1, + "user": { + "login": "hiimbex" + } + }, + "repository": { + "name": "testing-things", + "owner": { + "login": "hiimbex" + } + }, + "installation": { + "id": 2 + } +} diff --git a/secret-engine/test/fixtures/mock-cert.pem b/secret-engine/test/fixtures/mock-cert.pem new file mode 100644 index 000000000..f2f271c30 --- /dev/null +++ b/secret-engine/test/fixtures/mock-cert.pem @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEowIBAAKCAQEAli7V49NdZe+XYC1pLaHM0te8kiDmZBJ1u2HJHN8GdbROB6NO +VpC3xK7NxQn6xpvZ9ux20NvcDvGle+DOptZztBH+np6h2jZQ1/kD1yG1eQvVH4th +/9oqHuIjmIfO8lIe4Hyd5Fw5xHkGqVETTGR+0c7kdZIlHmkOregUGtMYZRUi4YG+ +q0w+uFemiHpGKXbeCIAvkq7aIkisEzvPWfSyYdA6WJHpxFk7tD7D8VkzABLVRHCq +AuyqPG39BhGZcGLXx5rGK56kDBJkyTR1t3DkHpwX+JKNG5UYNwOG4LcQj1fteeta +TdkYUMjIyWbanlMYyC+dq7B5fe7el99jXQ1gXwIDAQABAoIBADKfiPOpzKLOtzzx +MbHzB0LO+75aHq7+1faayJrVxqyoYWELuB1P3NIMhknzyjdmU3t7S7WtVqkm5Twz +lBUC1q+NHUHEgRQ4GNokExpSP4SU63sdlaQTmv0cBxmkNarS6ZuMBgDy4XoLvaYX +MSUf/uukDLhg0ehFS3BteVFtdJyllhDdTenF1Nb1rAeN4egt8XLsE5NQDr1szFEG +xH5lb+8EDtzgsGpeIddWR64xP0lDIKSZWst/toYKWiwjaY9uZCfAhvYQ1RsO7L/t +sERmpYgh+rAZUh/Lr98EI8BPSPhzFcSHmtqzzejvC5zrZPHcUimz0CGA3YBiLoJX +V1OrxmECgYEAxkd8gpmVP+LEWB3lqpSvJaXcGkbzcDb9m0OPzHUAJDZtiIIf0UmO +nvL68/mzbCHSj+yFjZeG1rsrAVrOzrfDCuXjAv+JkEtEx0DIevU1u60lGnevOeky +r8Be7pmymFB9/gzQAd5ezIlTv/COgoO986a3h1yfhzrrzbqSiivw308CgYEAwecI +aZZwqH3GifR+0+Z1B48cezA5tC8LZt5yObGzUfxKTWy30d7lxe9N59t0KUVt/QL5 +qVkd7mqGzsUMyxUN2U2HVnFTWfUFMhkn/OnCnayhILs8UlCTD2Xxoy1KbQH/9FIr +xf0pbMNJLXeGfyRt/8H+BzSZKBw9opJBWE4gqfECgYBp9FdvvryHuBkt8UQCRJPX +rWsRy6pY47nf11mnazpZH5Cmqspv3zvMapF6AIxFk0leyYiQolFWvAv+HFV5F6+t +Si1mM8GCDwbA5zh6pEBDewHhw+UqMBh63HSeUhmi1RiOwrAA36CO8i+D2Pt+eQHv +ir52IiPJcs4BUNrv5Q1BdwKBgBHgVNw3LGe8QMOTMOYkRwHNZdjNl2RPOgPf2jQL +d/bFBayhq0jD/fcDmvEXQFxVtFAxKAc+2g2S8J67d/R5Gm/AQAvuIrsWZcY6n38n +pfOXaLt1x5fnKcevpFlg4Y2vM4O416RHNLx8PJDehh3Oo/2CSwMrDDuwbtZAGZok +icphAoGBAI74Tisfn+aeCZMrO8KxaWS5r2CD1KVzddEMRKlJvSKTY+dOCtJ+XKj1 +OsZdcDvDC5GtgcywHsYeOWHldgDWY1S8Z/PUo4eK9qBXYBXp3JEZQ1dqzFdz+Txi +rBn2WsFLsxV9j2/ugm0PqWVBcU2bPUCwvaRu3SOms2teaLwGCkhr +-----END RSA PRIVATE KEY----- diff --git a/secret-engine/test/index.test.ts b/secret-engine/test/index.test.ts new file mode 100644 index 000000000..d3a6e556e --- /dev/null +++ b/secret-engine/test/index.test.ts @@ -0,0 +1,74 @@ +// You can import your modules +// import index from '../src/index' + +import nock from "nock"; +// Requiring our app implementation +import myProbotApp from "../src"; +import { Probot, ProbotOctokit } from "probot"; +// Requiring our fixtures +import payload from "./fixtures/issues.opened.json"; +const issueCreatedBody = { body: "Thanks for opening this issue!" }; +const fs = require("fs"); +const path = require("path"); + +const privateKey = fs.readFileSync( + path.join(__dirname, "fixtures/mock-cert.pem"), + "utf-8" +); + +describe("My Probot app", () => { + let probot: any; + + beforeEach(() => { + nock.disableNetConnect(); + probot = new Probot({ + appId: 123, + privateKey, + // disable request throttling and retries for testing + Octokit: ProbotOctokit.defaults({ + retry: { enabled: false }, + throttle: { enabled: false }, + }), + }); + // Load our app into probot + probot.load(myProbotApp); + }); + + test("creates a comment when an issue is opened", async () => { + const mock = nock("https://api.github.com") + // Test that we correctly return a test token + .post("/app/installations/2/access_tokens") + .reply(200, { + token: "test", + permissions: { + issues: "write", + }, + }) + + // Test that a comment is posted + .post("/repos/hiimbex/testing-things/issues/1/comments", (body: any) => { + expect(body).toMatchObject(issueCreatedBody); + return true; + }) + .reply(200); + + // Receive a webhook event + await probot.receive({ name: "issues", payload }); + + expect(mock.pendingMocks()).toStrictEqual([]); + }); + + afterEach(() => { + nock.cleanAll(); + nock.enableNetConnect(); + }); +}); + +// For more information about testing with Jest see: +// https://facebook.github.io/jest/ + +// For more information about using TypeScript in your tests, Jest recommends: +// https://github.com/kulshekhar/ts-jest + +// For more information about testing with Nock see: +// https://github.com/nock/nock diff --git a/secret-engine/tsconfig.json b/secret-engine/tsconfig.json new file mode 100644 index 000000000..8f4e51379 --- /dev/null +++ b/secret-engine/tsconfig.json @@ -0,0 +1,70 @@ +{ + "compilerOptions": { + /* Basic Options */ + "incremental": true /* Enable incremental compilation */, + "target": "es5" /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019' or 'ESNEXT'. */, + "module": "commonjs" /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */, + "lib": [ + "es2015", + "es2017" + ] /* Specify library files to be included in the compilation. */, + "allowJs": true /* Allow javascript files to be compiled. */, + "checkJs": true /* Report errors in .js files. */, + // "jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */ + "declaration": true /* Generates corresponding '.d.ts' file. */, + // "declarationMap": true, /* Generates a sourcemap for each corresponding '.d.ts' file. */ + "sourceMap": true /* Generates corresponding '.map' file. */, + // "outFile": "./", /* Concatenate and emit output to single file. */ + "outDir": "./lib" /* Redirect output structure to the directory. */, + // "rootDir": "./", /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */ + // "composite": true, /* Enable project compilation */ + // "tsBuildInfoFile": "./" /* Specify file to store incremental compilation information */, + // "removeComments": true, /* Do not emit comments to output. */ + // "noEmit": true, /* Do not emit outputs. */ + // "importHelpers": true, /* Import emit helpers from 'tslib'. */ + // "downlevelIteration": true, /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */ + // "isolatedModules": true, /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */ + /* Strict Type-Checking Options */ + "strict": true /* Enable all strict type-checking options. */, + // "noImplicitAny": true, /* Raise error on expressions and declarations with an implied 'any' type. */ + // "strictNullChecks": true, /* Enable strict null checks. */ + // "strictFunctionTypes": true, /* Enable strict checking of function types. */ + // "strictBindCallApply": true, /* Enable strict 'bind', 'call', and 'apply' methods on functions. */ + // "strictPropertyInitialization": true, /* Enable strict checking of property initialization in classes. */ + // "noImplicitThis": true, /* Raise error on 'this' expressions with an implied 'any' type. */ + // "alwaysStrict": true, /* Parse in strict mode and emit "use strict" for each source file. */ + /* Additional Checks */ + "noUnusedLocals": false /* Report errors on unused locals. */, + "noUnusedParameters": false /* Report errors on unused parameters. */, + "noImplicitReturns": true /* Report error when not all code paths in function return a value. */, + "noFallthroughCasesInSwitch": true /* Report errors for fallthrough cases in switch statement. */, + /* Module Resolution Options */ + "moduleResolution": "node" /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */, + // "baseUrl": "./src" /* Base directory to resolve non-absolute module names. */, + // "paths": {}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */ + // "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */ + // "typeRoots": [], /* List of folders to include type definitions from. */ + // "types": [], /* Type declaration files to be included in compilation. */ + // "allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just type checking. */ + "esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */, + // "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */ + // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ + /* Source Map Options */ + // "sourceRoot": "", /* Specify the location where debugger should locate TypeScript files instead of source locations. */ + // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ + // "inlineSourceMap": true, /* Emit a single file with source maps instead of having a separate file. */ + // "inlineSources": true, /* Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set. */ + /* Experimental Options */ + // "experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */ + // "emitDecoratorMetadata": true, /* Enables experimental support for emitting type metadata for decorators. */ + /* Advanced Options */ + "forceConsistentCasingInFileNames": true /* Disallow inconsistently-cased references to the same file. */, + "resolveJsonModule": true, + "pretty": false, + "skipLibCheck": true + }, + "include": [ + "src/" + ], + "compileOnSave": false +} \ No newline at end of file From 079d68c042b2971163e4bd9028aff025a7e1a0e7 Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Thu, 22 Jun 2023 22:28:39 -0400 Subject: [PATCH 002/132] remove dummy file content --- secret-engine/fileContents.txt | 15 --------------- 1 file changed, 15 deletions(-) delete mode 100644 secret-engine/fileContents.txt diff --git a/secret-engine/fileContents.txt b/secret-engine/fileContents.txt deleted file mode 100644 index 415b5537d..000000000 --- a/secret-engine/fileContents.txt +++ /dev/null @@ -1,15 +0,0 @@ -# New-folder -Our small pizza is 10 inches and serves 1—3 people.fOr you can orderffwef a larger pizza size and sfwefweplit the toppings so that everyone dines happy. -ddfdfdfd -Our small pizza is 10 inches and serves 1—3 people.fOr you can orderffwef a larger pizza size and sfwefweplit the toppings so that everyone dines happy. -Our small pizz - -cc -ss123 - -JWT_AUTH_SECRET=4be6ba5602e0fa0ac6ac05c3cd4d247f - -export CLOUDSMITH_API_KEY=f5cf077b879c2ab46a49c6f1ec4199e6fba0fc0b -1234abc - -ssd From dfc88d99f6d997e45fdd3839bb58cf199000dac0 Mon Sep 17 00:00:00 2001 From: Vladyslav Matsiiako Date: Wed, 28 Jun 2023 14:28:52 -0700 Subject: [PATCH 003/132] first draft new sidebar --- frontend/src/components/v2/Menu/Menu.tsx | 8 +- frontend/src/components/v2/Tabs/Tabs.tsx | 27 +- frontend/src/layouts/AppLayout/AppLayout.tsx | 109 ++--- frontend/src/pages/org/[id].tsx | 433 +++++++++++++++++++ frontend/tailwind.config.js | 48 +- 5 files changed, 535 insertions(+), 90 deletions(-) create mode 100644 frontend/src/pages/org/[id].tsx diff --git a/frontend/src/components/v2/Menu/Menu.tsx b/frontend/src/components/v2/Menu/Menu.tsx index 632218020..87ef29b5c 100644 --- a/frontend/src/components/v2/Menu/Menu.tsx +++ b/frontend/src/components/v2/Menu/Menu.tsx @@ -48,7 +48,7 @@ export const MenuItem = ({ >
  • ({ > -
    +
    {/* {icon && {icon}} */} {children} diff --git a/frontend/src/components/v2/Tabs/Tabs.tsx b/frontend/src/components/v2/Tabs/Tabs.tsx index e29b5e6a9..cc7e755f6 100644 --- a/frontend/src/components/v2/Tabs/Tabs.tsx +++ b/frontend/src/components/v2/Tabs/Tabs.tsx @@ -72,12 +72,12 @@ export const TabsObject = () => { > Windows - Arch Linux - + */} { @@ -105,10 +105,10 @@ export const TabsObject = () => { .

    - +
    - )} -
    - + ))} +
    + {router.asPath.includes("project") ? { + : + + + + Overview + + + + + + + {t("nav.menu.members")} + + + + + + + Org Setting + + + + }
    -
    - {router.asPath.split("/")[1] === "home" ? ( -
    -
    -

    - -

    - Infisical Guide - progress bar -
    - ) : ( - -
    -

    - -

    - Infisical Guide - progress bar -
    - - )} +
    +
    + + Invite people +
    +
    + + Help & Support +
    diff --git a/frontend/src/pages/org/[id].tsx b/frontend/src/pages/org/[id].tsx new file mode 100644 index 000000000..34029b370 --- /dev/null +++ b/frontend/src/pages/org/[id].tsx @@ -0,0 +1,433 @@ +import { useEffect, useState } from "react"; +import { useTranslation } from "react-i18next"; +import Head from "next/head"; +import Image from "next/image"; +import Link from "next/link"; +import { useRouter } from "next/router"; +import { IconProp } from "@fortawesome/fontawesome-svg-core"; +import { faSlack } from "@fortawesome/free-brands-svg-icons"; +import { faArrowRight, faCheckCircle, faHandPeace, faMagnifyingGlass, faNetworkWired, faPlug, faPlus, faStar, faUserPlus } from "@fortawesome/free-solid-svg-icons"; +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; + +import AddProjectMemberDialog from "@app/components/basic/dialog/AddProjectMemberDialog"; +import ProjectUsersTable from "@app/components/basic/table/ProjectUsersTable"; +import guidGenerator from "@app/components/utilities/randomId"; +import { useWorkspace } from "@app/context"; +import { Workspace } from "@app/hooks/api/workspace/types"; + +import onboardingCheck from "~/components/utilities/checks/OnboardingCheck"; +import { TabsObject } from "~/components/v2/Tabs"; + +import { + decryptAssymmetric, + encryptAssymmetric +} from "../../components/utilities/cryptography/crypto"; +import getOrganizationUsers from "../api/organization/GetOrgUsers"; +import getUser from "../api/user/getUser"; +import registerUserAction from "../api/userActions/registerUserAction"; +// import DeleteUserDialog from '@app/components/basic/dialog/DeleteUserDialog'; +import addUserToWorkspace from "../api/workspace/addUserToWorkspace"; +import getWorkspaceUsers from "../api/workspace/getWorkspaceUsers"; +import uploadKeys from "../api/workspace/uploadKeys"; + +interface UserProps { + firstName: string; + lastName: string; + email: string; + _id: string; + publicKey: string; +} + +interface MembershipProps { + deniedPermissions: any[]; + user: UserProps; + inviteEmail: string; + role: string; + status: string; + _id: string; +} + +const features = [{ + "_id": 0, + "name": "Kubernetes Operator", + "description": "Pull secrets into your Kubernetes containers and automatically redeploy upon secret changes." +}] + +type ItemProps = { + text: string; + subText: string; + complete: boolean; + icon: IconProp; + time: string; + userAction?: string; + link?: string; +}; + +const learningItem = ({ + text, + subText, + complete, + icon, + time, + userAction, + link +}: ItemProps): JSX.Element => { + if (link) { + return ( + +
    +
    null} + role="button" + tabIndex={0} + onClick={async () => { + if (userAction && userAction !== "first_time_secrets_pushed") { + await registerUserAction({ + action: userAction + }); + } + }} + className={`group relative flex h-[5.5rem] w-full items-center justify-between overflow-hidden rounded-md border ${complete? "bg-gradient-to-r from-[#0e1f01] to-mineshaft-700 border-mineshaft-900 cursor-default" : "bg-mineshaft-800 hover:bg-mineshaft-700 border-mineshaft-600 shadow-xl cursor-pointer"} duration-200 text-mineshaft-100`} + > +
    + + {complete && ( +
    + +
    + )} +
    +
    {text}
    +
    {subText}
    +
    +
    +
    + {complete ? "Complete!" : `About ${time}`} +
    + {/* {complete &&
    } */} +
    +
    +
    + ); + } + return ( +
    null} + role="button" + tabIndex={0} + onClick={async () => { + if (userAction) { + await registerUserAction({ + action: userAction + }); + } + }} + className="relative my-1.5 flex h-[5.5rem] w-full cursor-pointer items-center justify-between overflow-hidden rounded-md border border-dashed border-bunker-400 bg-bunker-700 py-2 pl-2 pr-6 shadow-xl duration-200 hover:bg-bunker-500" + > +
    + + {complete && ( +
    + +
    + )} +
    +
    {text}
    +
    {subText}
    +
    +
    +
    + {complete ? "Complete!" : `About ${time}`} +
    + {complete &&
    } +
    + ); +}; + +// #TODO: Update all the workspaceIds + +export default function Organization() { + const [isAddOpen, setIsAddOpen] = useState(false); + // let [isDeleteOpen, setIsDeleteOpen] = useState(false); + // let [userIdToBeDeleted, setUserIdToBeDeleted] = useState(false); + const [email, setEmail] = useState(""); + const [personalEmail, setPersonalEmail] = useState(""); + const [searchUsers, setSearchUsers] = useState(""); + + const { t } = useTranslation(); + + const router = useRouter(); + const workspaceId = router.query.id as string; + + const [userList, setUserList] = useState([]); + const [isUserListLoading, setIsUserListLoading] = useState(true); + const [orgUserList, setOrgUserList] = useState([]); + const { workspaces, isLoading: isWorkspaceLoading } = useWorkspace(); + + useEffect(() => { + (async () => { + const user = await getUser(); + setPersonalEmail(user.email); + + // This part quiries the current users of a project + const workspaceUsers = await getWorkspaceUsers({ + workspaceId + }); + const tempUserList = workspaceUsers.map((membership: MembershipProps) => ({ + key: guidGenerator(), + firstName: membership.user?.firstName, + lastName: membership.user?.lastName, + email: membership.user?.email === null ? membership.inviteEmail : membership.user?.email, + role: membership?.role, + status: membership?.status, + userId: membership.user?._id, + membershipId: membership._id, + deniedPermissions: membership.deniedPermissions, + publicKey: membership.user?.publicKey + })); + setUserList(tempUserList); + + setIsUserListLoading(false); + + // This is needed to know wha users from an org (if any), we are able to add to a certain project + const orgUsers = await getOrganizationUsers({ + orgId: String(localStorage.getItem("orgData.id")) + }); + setOrgUserList(orgUsers); + setEmail( + orgUsers + ?.filter((membership: MembershipProps) => membership.status === "accepted") + .map((membership: MembershipProps) => membership.user.email) + .filter( + (usEmail: string) => + !tempUserList?.map((user1: UserProps) => user1.email).includes(usEmail) + )[0] + ); + })(); + }, []); + + const closeAddModal = () => { + setIsAddOpen(false); + }; + + const openAddModal = () => { + setIsAddOpen(true); + }; + + // function closeDeleteModal() { + // setIsDeleteOpen(false); + // } + + // function deleteMembership(userId) { + // deleteUserFromWorkspace(userId, router.query.id) + // } + + // function openDeleteModal() { + // setIsDeleteOpen(true); + // } + + const submitAddModal = async () => { + const result = await addUserToWorkspace(email, workspaceId); + if (result?.invitee && result?.latestKey) { + const PRIVATE_KEY = localStorage.getItem("PRIVATE_KEY") as string; + + // assymmetrically decrypt symmetric key with local private key + const key = decryptAssymmetric({ + ciphertext: result.latestKey.encryptedKey, + nonce: result.latestKey.nonce, + publicKey: result.latestKey.sender.publicKey, + privateKey: PRIVATE_KEY + }); + + const { ciphertext, nonce } = encryptAssymmetric({ + plaintext: key, + publicKey: result.invitee.publicKey, + privateKey: PRIVATE_KEY + }); + + uploadKeys(workspaceId, result.invitee._id, ciphertext, nonce); + } + setEmail(""); + setIsAddOpen(false); + router.rel + oad(); + }; + const [hasUserClickedSlack, setHasUserClickedSlack] = useState(false); + const [hasUserClickedIntro, setHasUserClickedIntro] = useState(false); + const [hasUserStarred, setHasUserStarred] = useState(false); + const [hasUserPushedSecrets, setHasUserPushedSecrets] = useState(false); + const [usersInOrg, setUsersInOrg] = useState(false); + + useEffect(() => { + onboardingCheck({ + setHasUserClickedIntro, + setHasUserClickedSlack, + setHasUserPushedSecrets, + setHasUserStarred, + setUsersInOrg + }); + }, []); + + return userList ? ( +
    + + {t("common.head-title", { title: t("settings.members.title") })} + + +
    +

    Projects

    +
    + {workspaces.map(workspace =>
    +
    {workspace.name}
    +
    {(workspace.environments?.length || 0)} environments
    + +
    Explore
    + +
    )} +
    +
    +
    +

    Onboarding Guide

    + {learningItem({ + text: "Watch a video about Infisical", + subText: "", + complete: hasUserClickedIntro, + icon: faHandPeace, + time: "3 min", + userAction: "intro_cta_clicked", + link: "https://www.youtube.com/watch?v=PK23097-25I" + })} + {learningItem({ + text: "Add your secrets", + subText: "Click to see example secrets, and add your own.", + complete: hasUserPushedSecrets, + icon: faPlus, + time: "1 min", + userAction: "first_time_secrets_pushed", + link: `/dashboard/${router.query.id}` + })} +
    +
    +
    + + {false && ( +
    + +
    + )} +
    +
    Inject secrets locally
    +
    + Replace .env files with a more secure and efficient alternative. +
    +
    +
    +
    + About 2 min +
    +
    + + {false &&
    } +
    + {learningItem({ + text: "Integrate Infisical with your infrastructure", + subText: "Connect Infisical to various 3rd party services and platforms.", + complete: false, + icon: faPlug, + time: "15 min", + link: "https://infisical.com/docs/integrations/overview" + })} + {learningItem({ + text: "Invite your teammates", + subText: "", + complete: usersInOrg, + icon: faUserPlus, + time: "2 min", + link: `/settings/org/${router.query.id}?invite` + })} + {learningItem({ + text: "Join Infisical Slack", + subText: "Have any questions? Ask us!", + complete: hasUserClickedSlack, + icon: faSlack, + time: "1 min", + userAction: "slack_cta_clicked", + link: "https://join.slack.com/t/infisical-users/shared_invite/zt-1wehzfnzn-1aMo5JcGENJiNAC2SD8Jlg" + })} + {/*
    + {workspaces.map(workspace =>
    +
    {workspace.name}
    + +
    Explore
    + +
    )} +
    */} +
    +
    +

    Explore More

    +
    + {features.map(feature =>
    +
    {feature.name}
    +
    {feature.description}
    +
    +
    Setup time: 20 min
    + +
    Learn more
    + +
    +
    )} +
    +
    + membership.status === "accepted") + .map((membership: MembershipProps) => membership.user.email) + .filter( + (orgEmail) => !userList?.map((user1: UserProps) => user1.email).includes(orgEmail) + )} + setEmail={setEmail} + /> + {/* */} + {/*
    +
    + setSearchUsers(e.target.value)} + leftIcon={} + /> +
    +
    +
    +
    */} +
    + ) : ( +
    + loading animation +
    + ); +} + +Organization.requireAuth = true; diff --git a/frontend/tailwind.config.js b/frontend/tailwind.config.js index e8bd3b56b..29811c15a 100644 --- a/frontend/tailwind.config.js +++ b/frontend/tailwind.config.js @@ -1245,17 +1245,17 @@ module.exports = { colors: { // You can generate your own colors with this tool: https://javisperez.github.io/tailwindcolorshades/ primary: { - 50: '#fcfdf7', - 100: '#f8fcee', - 200: '#eef6d5', - 300: '#e3f1bc', - 400: '#cfe78a', - 500: '#badc58', - 600: '#a7c64f', - 700: '#8ca542', - 800: '#708435', - 900: '#5b6c2b', - DEFAULT: '#badc58' + 50: '#fffff5', + 100: '#fcfce8', + 200: '#f8faca', + 300: '#f4f7ab', + 400: '#ecf26d', + 500: '#e0ed34', + 600: '#c2d62b', + 700: '#97b31d', + 800: '#708f13', + 900: '#4d6b0b', + DEFAULT: '#e0ed34' }, grey: '#0d1117', mineshaft: { @@ -1339,7 +1339,31 @@ module.exports = { 800: '#1c7a44', 900: '#176437', DEFAULT: '#2ecc71' - } + }, + blue: { + 50: '#f2f8ff', + 100: '#e6f1ff', + 200: '#bfdbff', + 300: '#99c5ff', + 400: '#4d9aff', + 500: '#006eff', + 600: '#0063e6', + 700: '#0053bf', + 800: '#004299', + 900: '#00367d' + }, + darkblue: { + 50: '#f2f4f7', + 100: '#e6e8f0', + 200: '#bfc6d9', + 300: '#99a3c3', + 400: '#4d5f95', + 500: '#001a68', + 600: '#00175e', + 700: '#00144e', + 800: '#00103e', + 900: '#000d33' + }, }, keyframes: { type: { From 9f6aa6b13e17b5c075ee558cd45b9c38529bd876 Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Tue, 4 Jul 2023 10:54:44 -0400 Subject: [PATCH 004/132] add v1 secret scanning --- backend/.eslintrc | 30 +- backend/src/controllers/v1/index.ts | 2 + .../v1/secretScanningController.ts | 89 + backend/src/index.ts | 4 +- .../src/models/gitAppInstallationSession.ts | 34 + .../models/gitAppOrganizationInstallation.ts | 31 + backend/src/models/gitRisks.ts | 148 + backend/src/routes/v1/index.ts | 2 + backend/src/routes/v1/secretScanning.ts | 80 + backend/src/utils/errors.ts | 13 +- docker-compose.dev.yml | 25 + frontend/.eslintrc.js | 4 +- frontend/src/layouts/AppLayout/AppLayout.tsx | 8 + .../createSecretScanningSession.ts | 22 + .../secret-scanning/getInstallationStatus.ts | 22 + .../secret-scanning/getRisksByOrganization.ts | 57 + .../linkGitAppInstallationWithOrganization.ts | 25 + .../api/secret-scanning/updateRiskStatus.ts | 33 + frontend/src/pages/secret-scanning/index.tsx | 156 + nginx/default.dev.conf | 14 + package-lock.json | 3878 ++++++++--------- secret-engine/.eslintrc | 14 + secret-engine/Dockerfile.dev | 13 + secret-engine/package-lock.json | 3011 ++++++++++++- secret-engine/package.json | 11 +- secret-engine/src/index.ts | 92 +- .../models/gitAppOrganizationInstallation.ts | 31 + secret-engine/src/models/gitRisks.ts | 147 + secret-engine/tsconfig.json | 2 +- 29 files changed, 6019 insertions(+), 1979 deletions(-) create mode 100644 backend/src/controllers/v1/secretScanningController.ts create mode 100644 backend/src/models/gitAppInstallationSession.ts create mode 100644 backend/src/models/gitAppOrganizationInstallation.ts create mode 100644 backend/src/models/gitRisks.ts create mode 100644 backend/src/routes/v1/secretScanning.ts create mode 100644 frontend/src/pages/api/secret-scanning/createSecretScanningSession.ts create mode 100644 frontend/src/pages/api/secret-scanning/getInstallationStatus.ts create mode 100644 frontend/src/pages/api/secret-scanning/getRisksByOrganization.ts create mode 100644 frontend/src/pages/api/secret-scanning/linkGitAppInstallationWithOrganization.ts create mode 100644 frontend/src/pages/api/secret-scanning/updateRiskStatus.ts create mode 100644 frontend/src/pages/secret-scanning/index.tsx create mode 100644 secret-engine/.eslintrc create mode 100644 secret-engine/Dockerfile.dev create mode 100644 secret-engine/src/models/gitAppOrganizationInstallation.ts create mode 100644 secret-engine/src/models/gitRisks.ts diff --git a/backend/.eslintrc b/backend/.eslintrc index 64b049ea7..d02882370 100644 --- a/backend/.eslintrc +++ b/backend/.eslintrc @@ -1,6 +1,9 @@ { "parser": "@typescript-eslint/parser", - "plugins": ["@typescript-eslint", "unused-imports"], + "plugins": [ + "@typescript-eslint", + "unused-imports" + ], "extends": [ "eslint:recommended", "plugin:@typescript-eslint/eslint-recommended", @@ -8,14 +11,29 @@ ], "rules": { "no-console": 2, - "quotes": ["error", "double", { "avoidEscape": true }], - "comma-dangle": ["error", "only-multiline"], + "quotes": [ + "error", + "double", + { + "avoidEscape": true + } + ], + "comma-dangle": [ + "error", + "only-multiline" + ], "@typescript-eslint/no-unused-vars": "off", "unused-imports/no-unused-imports": "error", + "@typescript-eslint/no-empty-function": "off", "unused-imports/no-unused-vars": [ "warn", - { "vars": "all", "varsIgnorePattern": "^_", "args": "after-used", "argsIgnorePattern": "^_" } + { + "vars": "all", + "varsIgnorePattern": "^_", + "args": "after-used", + "argsIgnorePattern": "^_" + } ], - "sort-imports": ["error", { "ignoreDeclarationSort": true }] + "sort-imports": "off" } -} +} \ No newline at end of file diff --git a/backend/src/controllers/v1/index.ts b/backend/src/controllers/v1/index.ts index 9e4a45c8b..488c9c6f2 100644 --- a/backend/src/controllers/v1/index.ts +++ b/backend/src/controllers/v1/index.ts @@ -13,6 +13,7 @@ import * as signupController from "./signupController"; import * as userActionController from "./userActionController"; import * as userController from "./userController"; import * as workspaceController from "./workspaceController"; +import * as secretScanningController from "./secretScanningController"; export { authController, @@ -30,4 +31,5 @@ export { userActionController, userController, workspaceController, + secretScanningController }; diff --git a/backend/src/controllers/v1/secretScanningController.ts b/backend/src/controllers/v1/secretScanningController.ts new file mode 100644 index 000000000..6de6b1483 --- /dev/null +++ b/backend/src/controllers/v1/secretScanningController.ts @@ -0,0 +1,89 @@ +import { Request, Response } from "express"; +import GitAppInstallationSession from "../../models/gitAppInstallationSession"; +import crypto from "crypto"; +import { Types } from "mongoose"; +import { UnauthorizedRequestError } from "../../utils/errors"; +import GitAppOrganizationInstallation from "../../models/gitAppOrganizationInstallation"; +import { MembershipOrg } from "../../models"; +import GitRisks, { STATUS_UNRESOLVED } from "../../models/gitRisks"; + +export const createInstallationSession = async (req: Request, res: Response) => { + const sessionId = crypto.randomBytes(16).toString("hex"); + await GitAppInstallationSession.findByIdAndUpdate( + req.organization, + { + organization: new Types.ObjectId(req.organization), + sessionId: sessionId, + user: new Types.ObjectId(req.user._id) + }, + { upsert: true } + ).lean(); + + res.send({ + sessionId: sessionId + }) +} + +export const linkInstallationToOrganization = async (req: Request, res: Response) => { + const { installationId, sessionId } = req.body + + const installationSession = await GitAppInstallationSession.findOneAndDelete({ sessionId: sessionId }) + if (!installationSession) { + throw UnauthorizedRequestError() + } + + const userMembership = await MembershipOrg.find({ user: req.user._id, organization: installationSession.organization }) + if (!userMembership) { + throw UnauthorizedRequestError() + } + + const installationLink = await GitAppOrganizationInstallation.findOneAndUpdate({ + organizationId: installationSession.organization, + }, { + installationId: installationId, + organizationId: installationSession.organization, + user: installationSession.user + }, { + upsert: true + }).lean() + + res.json(installationLink) +} + +export const getCurrentOrganizationInstallationStatus = async (req: Request, res: Response) => { + const { organizationId } = req.params + try { + const appInstallation = await GitAppOrganizationInstallation.findOne({ organizationId: organizationId }).lean() + if (!appInstallation) { + res.json({ + appInstallationComplete: false + }) + } + + res.json({ + appInstallationComplete: true + }) + } catch { + res.json({ + appInstallationComplete: false + }) + } +} + +export const getRisksForOrganization = async (req: Request, res: Response) => { + const { organizationId } = req.params + const risks = await GitRisks.find({ organization: organizationId, status: STATUS_UNRESOLVED }).lean() + res.json({ + risks: risks + }) +} + +export const updateRisksStatus = async (req: Request, res: Response) => { + const { riskId } = req.params + const { status } = req.body + const risks = await GitRisks.findByIdAndUpdate(riskId, { + sttaus: status + }).lean() + + res.json(risks) +} \ No newline at end of file diff --git a/backend/src/index.ts b/backend/src/index.ts index 826d5ca9c..364317a93 100644 --- a/backend/src/index.ts +++ b/backend/src/index.ts @@ -34,6 +34,7 @@ import { organization as v1OrganizationRouter, password as v1PasswordRouter, secret as v1SecretRouter, + secretScanning as v1SecretScanningRouter, secretsFolder as v1SecretsFolder, serviceToken as v1ServiceTokenRouter, signup as v1SignupRouter, @@ -42,8 +43,8 @@ import { workspace as v1WorkspaceRouter, } from "./routes/v1"; import { - signup as v2SignupRouter, auth as v2AuthRouter, + signup as v2SignupRouter, users as v2UsersRouter, organizations as v2OrganizationsRouter, workspace as v2WorkspaceRouter, @@ -125,6 +126,7 @@ const main = async () => { app.use("/api/v1/integration", v1IntegrationRouter); app.use("/api/v1/integration-auth", v1IntegrationAuthRouter); app.use("/api/v1/folders", v1SecretsFolder); + app.use("/api/v1/secret-scanning", v1SecretScanningRouter); // v2 routes (improvements) app.use("/api/v2/signup", v2SignupRouter); diff --git a/backend/src/models/gitAppInstallationSession.ts b/backend/src/models/gitAppInstallationSession.ts new file mode 100644 index 000000000..a78629186 --- /dev/null +++ b/backend/src/models/gitAppInstallationSession.ts @@ -0,0 +1,34 @@ +import { Schema, Types, model } from "mongoose"; + +type GitAppInstallationSession = { + id: string; + sessionId: string; + organization: Types.ObjectId; + user: Types.ObjectId; +} + +const gitAppInstallationSession = new Schema({ + id: { + required: true, + type: String, + }, + sessionId: { + type: String, + required: true, + unique: true + }, + organization: { + type: Schema.Types.ObjectId, + required: true, + unique: true + }, + user: { + type: Schema.Types.ObjectId, + ref: "User" + } +}); + + +const GitAppInstallationSession = model("git_app_installation_session", gitAppInstallationSession); + +export default GitAppInstallationSession; diff --git a/backend/src/models/gitAppOrganizationInstallation.ts b/backend/src/models/gitAppOrganizationInstallation.ts new file mode 100644 index 000000000..e742c0cf1 --- /dev/null +++ b/backend/src/models/gitAppOrganizationInstallation.ts @@ -0,0 +1,31 @@ +import { Schema, model } from "mongoose"; + +type Installation = { + installationId: string + organizationId: string + user: Schema.Types.ObjectId +}; + + +const gitAppOrganizationInstallation = new Schema({ + installationId: { + type: String, + required: true, + unique: true + }, + organizationId: { + type: String, + required: true, + unique: true + }, + user: { + type: Schema.Types.ObjectId, + ref: "User", + required: true, + } +}); + + +const GitAppOrganizationInstallation = model("git_app_organization_installation", gitAppOrganizationInstallation); + +export default GitAppOrganizationInstallation; diff --git a/backend/src/models/gitRisks.ts b/backend/src/models/gitRisks.ts new file mode 100644 index 000000000..6262dbf30 --- /dev/null +++ b/backend/src/models/gitRisks.ts @@ -0,0 +1,148 @@ +import { Schema, model } from "mongoose"; + +export const STATUS_RESOLVED_FALSE_POSITIVE = "RESOLVED_FALSE_POSITIVE"; +export const STATUS_RESOLVED_REVOKED = "RESOLVED_REVOKED"; +export const STATUS_RESOLVED_NOT_REVOKED = "RESOLVED_NOT_REVOKED"; +export const STATUS_UNRESOLVED = "UNRESOLVED"; + +export type GitRisks = { + id: string; + description: string; + startLine: string; + endLine: string; + startColumn: string; + endColumn: string; + match: string; + secret: string; + file: string; + symlinkFile: string; + commit: string; + entropy: string; + author: string; + email: string; + date: string; + message: string; + tags: string[]; + ruleID: string; + fingerprint: string; + + isFalsePositive: boolean; // New field for marking risks as false positives + isResolved: boolean; // New field for marking risks as resolved + riskOwner: string | null; // New field for setting a risk owner (nullable string) + installationId: string, + repositoryId: string, + repositoryLink: string + repositoryFullName: string + status: string + pusher: { + name: string, + email: string + }, + organization: Schema.Types.ObjectId, +} + +const gitRisks = new Schema({ + id: { + type: String, + }, + description: { + type: String, + }, + startLine: { + type: String, + }, + endLine: { + type: String, + }, + startColumn: { + type: String, + }, + endColumn: { + type: String, + }, + file: { + type: String, + }, + symlinkFile: { + type: String, + }, + commit: { + type: String, + }, + entropy: { + type: String, + }, + author: { + type: String, + }, + email: { + type: String, + }, + date: { + type: String, + }, + message: { + type: String, + }, + tags: { + type: [String], + }, + ruleID: { + type: String, + }, + fingerprint: { + type: String, + unique: true + }, + isFalsePositive: { + type: Boolean, + default: false + }, + isResolved: { + type: Boolean, + default: false + }, + riskOwner: { + type: String, + default: null + }, + installationId: { + type: String, + require: true + }, + repositoryId: { + type: String + }, + repositoryLink: { + type: String + }, + repositoryFullName: { + type: String + }, + pusher: { + name: { + type: String + }, + email: { + type: String + }, + }, + organization: { + type: Schema.Types.ObjectId, + ref: "Organization", + }, + status: { + type: String, + enum: [ + STATUS_RESOLVED_FALSE_POSITIVE, + STATUS_RESOLVED_REVOKED, + STATUS_RESOLVED_NOT_REVOKED, + STATUS_UNRESOLVED + ], + default: STATUS_UNRESOLVED + } +}, { timestamps: true }); + +const GitRisks = model("GitRisks", gitRisks); + +export default GitRisks; diff --git a/backend/src/routes/v1/index.ts b/backend/src/routes/v1/index.ts index 43c0f672c..a1015c091 100644 --- a/backend/src/routes/v1/index.ts +++ b/backend/src/routes/v1/index.ts @@ -15,6 +15,7 @@ import password from "./password"; import integration from "./integration"; import integrationAuth from "./integrationAuth"; import secretsFolder from "./secretsFolder"; +import secretScanning from "./secretScanning"; export { signup, @@ -34,4 +35,5 @@ export { integration, integrationAuth, secretsFolder, + secretScanning }; diff --git a/backend/src/routes/v1/secretScanning.ts b/backend/src/routes/v1/secretScanning.ts new file mode 100644 index 000000000..a809fe3aa --- /dev/null +++ b/backend/src/routes/v1/secretScanning.ts @@ -0,0 +1,80 @@ +import express from "express"; +const router = express.Router(); +import { + requireAuth, + requireOrganizationAuth, + validateRequest, +} from "../../middleware"; +import { body, param } from "express-validator"; +import { createInstallationSession, getCurrentOrganizationInstallationStatus, getRisksForOrganization, linkInstallationToOrganization, updateRisksStatus } from "../../controllers/v1/secretScanningController"; +import { ACCEPTED, ADMIN, MEMBER, OWNER } from "../../variables"; + +router.post( + "/create-installation-session/organization/:organizationId", + requireAuth({ + acceptedAuthModes: ["jwt"], + }), + param("organizationId").exists().trim(), + requireOrganizationAuth({ + acceptedRoles: [OWNER, ADMIN, MEMBER], + acceptedStatuses: [ACCEPTED], + }), + validateRequest, + createInstallationSession +); + +router.post( + "/link-installation", + requireAuth({ + acceptedAuthModes: ["jwt"], + }), + body("installationId").exists().trim(), + body("sessionId").exists().trim(), + validateRequest, + linkInstallationToOrganization +); + +router.get( + "/installation-status/organization/:organizationId", + requireAuth({ + acceptedAuthModes: ["jwt"], + }), + param("organizationId").exists().trim(), + requireOrganizationAuth({ + acceptedRoles: [OWNER, ADMIN, MEMBER], + acceptedStatuses: [ACCEPTED], + }), + validateRequest, + getCurrentOrganizationInstallationStatus +); + +router.get( + "/organization/:organizationId/risks", + requireAuth({ + acceptedAuthModes: ["jwt"], + }), + param("organizationId").exists().trim(), + requireOrganizationAuth({ + acceptedRoles: [OWNER, ADMIN, MEMBER], + acceptedStatuses: [ACCEPTED], + }), + validateRequest, + getRisksForOrganization +); + +router.post( + "/organization/:organizationId/risks/:riskId/status", + requireAuth({ + acceptedAuthModes: ["jwt"], + }), + param("organizationId").exists().trim(), + param("riskId").exists().trim(), + requireOrganizationAuth({ + acceptedRoles: [OWNER, ADMIN, MEMBER], + acceptedStatuses: [ACCEPTED], + }), + validateRequest, + updateRisksStatus +); + +export default router; \ No newline at end of file diff --git a/backend/src/utils/errors.ts b/backend/src/utils/errors.ts index f99ef27b2..196eefdfe 100644 --- a/backend/src/utils/errors.ts +++ b/backend/src/utils/errors.ts @@ -27,7 +27,7 @@ export const UnauthorizedRequestError = (error?: Partial) = context: error?.context, stack: error?.stack, }); - + export const ForbiddenRequestError = (error?: Partial) => new RequestError({ logLevel: error?.logLevel ?? LogLevel.INFO, statusCode: error?.statusCode ?? 403, @@ -46,6 +46,15 @@ export const BadRequestError = (error?: Partial) => new Req stack: error?.stack, }); +export const ResourceNotFound = (error?: Partial) => new RequestError({ + logLevel: error?.logLevel ?? LogLevel.INFO, + statusCode: error?.statusCode ?? 404, + type: error?.type ?? "resource_not_found", + message: error?.message ?? "The requested resource is not found", + context: error?.context, + stack: error?.stack, +}); + export const InternalServerError = (error?: Partial) => new RequestError({ logLevel: error?.logLevel ?? LogLevel.ERROR, statusCode: error?.statusCode ?? 500, @@ -229,6 +238,6 @@ export const BotNotFoundError = (error?: Partial) => new Re message: error?.message ?? "The requested bot was not found", context: error?.context, stack: error?.stack, -}) +}) //* ----->[MISC ERRORS]<----- diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml index 8ffa7c3e9..c9646312a 100644 --- a/docker-compose.dev.yml +++ b/docker-compose.dev.yml @@ -58,6 +58,31 @@ services: networks: - infisical-dev + git-app: + container_name: infisical-dev-git-app + restart: unless-stopped + depends_on: + - mongo + - smtp-server + - backend + - frontend + volumes: + - ./secret-engine/src:/app/src/ # mounted whole src to avoid missing reload on new files + ports: + - "3000:3001" + build: + context: ./secret-engine + dockerfile: Dockerfile.dev + command: npm run start + env_file: ./secret-engine/.env + environment: + - NODE_ENV=development + - MONGO_URL=mongodb://root:example@mongo:27017/?authSource=admin + networks: + - infisical-dev + extra_hosts: + - "host.docker.internal:host-gateway" + mongo: image: mongo container_name: infisical-dev-mongo diff --git a/frontend/.eslintrc.js b/frontend/.eslintrc.js index e9cec0e24..692fecd97 100644 --- a/frontend/.eslintrc.js +++ b/frontend/.eslintrc.js @@ -7,7 +7,8 @@ module.exports = { root: true, env: { browser: true, - es2021: true + es2021: true, + "es6": true }, extends: [ "airbnb", @@ -70,6 +71,7 @@ module.exports = { ], "@typescript-eslint/no-non-null-assertion": "off", "simple-import-sort/exports": "warn", + "@typescript-eslint/no-empty-function": "off", "simple-import-sort/imports": [ "warn", { diff --git a/frontend/src/layouts/AppLayout/AppLayout.tsx b/frontend/src/layouts/AppLayout/AppLayout.tsx index c4f858bfe..94652708a 100644 --- a/frontend/src/layouts/AppLayout/AppLayout.tsx +++ b/frontend/src/layouts/AppLayout/AppLayout.tsx @@ -364,6 +364,14 @@ export const AppLayout = ({ children }: LayoutProps) => { + + + Secret scanning + + + SecurityClient.fetchCall(`/api/v1/secret-scanning/create-installation-session/organization/${organizationId}`, { + method: "POST", + headers: { + "Content-Type": "application/json" + } + }).then(async (res) => { + if (res && res.status === 200) { + return res.json(); + } + console.log("Failed to create integration session"); + console.log("response", res) + return undefined; + }); + +export default createNewIntegrationSession; diff --git a/frontend/src/pages/api/secret-scanning/getInstallationStatus.ts b/frontend/src/pages/api/secret-scanning/getInstallationStatus.ts new file mode 100644 index 000000000..50c1a3ba8 --- /dev/null +++ b/frontend/src/pages/api/secret-scanning/getInstallationStatus.ts @@ -0,0 +1,22 @@ +import SecurityClient from "@app/components/utilities/SecurityClient"; + +/** + * Will create a new integration session and return it for the given org + * @returns + */ +const getInstallationStatus = (organizationId: string) => + SecurityClient.fetchCall(`/api/v1/secret-scanning/installation-status/organization/${organizationId}`, { + method: "GET", + headers: { + "Content-Type": "application/json" + } + }).then(async (res) => { + if (res && res.status === 200) { + return (await res.json()).appInstallationComplete; + } + console.log("Failed to check installation status"); + console.log("response", res) + return undefined; + }); + +export default getInstallationStatus; diff --git a/frontend/src/pages/api/secret-scanning/getRisksByOrganization.ts b/frontend/src/pages/api/secret-scanning/getRisksByOrganization.ts new file mode 100644 index 000000000..3c357e7c6 --- /dev/null +++ b/frontend/src/pages/api/secret-scanning/getRisksByOrganization.ts @@ -0,0 +1,57 @@ +import SecurityClient from "@app/components/utilities/SecurityClient"; + +export type GitRisks = { + id: string; + description: string; + startLine: string; + endLine: string; + startColumn: string; + endColumn: string; + match: string; + secret: string; + file: string; + symlinkFile: string; + commit: string; + entropy: string; + author: string; + email: string; + date: string; + message: string; + tags: string[]; + ruleID: string; + fingerprint: string; + + isFalsePositive: boolean; // New field for marking risks as false positives + isResolved: boolean; // New field for marking risks as resolved + riskOwner: string | null; // New field for setting a risk owner (nullable string) + installationId: string, + repositoryId: string, + repositoryLink: string + repositoryFullName: string + pusher: { + name: string, + email: string + }, + createdAt: string, + organization: string, +} + +/** + * Will create a new integration session and return it for the given org + * @returns + */ +const getRisksByOrganization = (oranizationId: string): Promise => + SecurityClient.fetchCall(`/api/v1/secret-scanning/organization/${oranizationId}/risks`, { + method: "GET", + headers: { + "Content-Type": "application/json" + }, + }).then(async (res) => { + if (res && res.status === 200) { + return (await res.json()).risks; + } + console.log("Failed to fetch risks"); + return undefined; + }); + +export default getRisksByOrganization; diff --git a/frontend/src/pages/api/secret-scanning/linkGitAppInstallationWithOrganization.ts b/frontend/src/pages/api/secret-scanning/linkGitAppInstallationWithOrganization.ts new file mode 100644 index 000000000..5a5e6051a --- /dev/null +++ b/frontend/src/pages/api/secret-scanning/linkGitAppInstallationWithOrganization.ts @@ -0,0 +1,25 @@ +import SecurityClient from "@app/components/utilities/SecurityClient"; + +/** + * Will create a new integration session and return it for the given org + * @returns + */ +const linkGitAppInstallationWithOrganization = (installationId: string, sessionId: string) => + SecurityClient.fetchCall("/api/v1/secret-scanning/link-installation", { + method: "POST", + headers: { + "Content-Type": "application/json" + }, + body: JSON.stringify({ + installationId, + sessionId + }) + }).then(async (res) => { + if (res && res.status === 200) { + return res.json(); + } + console.log("Failed to link installation to organization"); + return undefined; + }); + +export default linkGitAppInstallationWithOrganization; diff --git a/frontend/src/pages/api/secret-scanning/updateRiskStatus.ts b/frontend/src/pages/api/secret-scanning/updateRiskStatus.ts new file mode 100644 index 000000000..470385af4 --- /dev/null +++ b/frontend/src/pages/api/secret-scanning/updateRiskStatus.ts @@ -0,0 +1,33 @@ +import SecurityClient from "@app/components/utilities/SecurityClient"; + +export enum RiskStatus { + RESOLVED_FALSE_POSITIVE = "RESOLVED_FALSE_POSITIVE", + RESOLVED_REVOKED = "RESOLVED_REVOKED", + RESOLVED_NOT_REVOKED = "RESOLVED_NOT_REVOKED", + UNRESOLVED = "UNRESOLVED", +} + + + +/** + * Will create a new integration session and return it for the given org + * @returns + */ +const updateRiskStatus = (organizationId: string, riskId: string, status: RiskStatus) => + SecurityClient.fetchCall(`/api/v1/secret-scanning/organization/${organizationId}/risks/${riskId}/status`, { + method: "POST", + headers: { + "Content-Type": "application/json" + }, + body: JSON.stringify({ + status + }) + }).then(async (res) => { + if (res && res.status === 200) { + return res.json(); + } + console.log("Failed to link installation to organization"); + return undefined; + }); + +export default updateRiskStatus; diff --git a/frontend/src/pages/secret-scanning/index.tsx b/frontend/src/pages/secret-scanning/index.tsx new file mode 100644 index 000000000..e5ca8ed89 --- /dev/null +++ b/frontend/src/pages/secret-scanning/index.tsx @@ -0,0 +1,156 @@ +import { useEffect, useState } from "react"; +import Head from "next/head"; +import { useRouter } from "next/router" + +import createNewIntegrationSession from "../api/secret-scanning/createSecretScanningSession"; +import getInstallationStatus from "../api/secret-scanning/getInstallationStatus"; +import getRisksByOrganization, { GitRisks } from "../api/secret-scanning/getRisksByOrganization"; +import linkGitAppInstallationWithOrganization from "../api/secret-scanning/linkGitAppInstallationWithOrganization"; +import { RiskStatus } from "../api/secret-scanning/updateRiskStatus"; + +export default function SecretScanning() { + const router = useRouter() + const { state, installationId} = router.query + const [integrationEnabled, setIntegrationStatus] = useState(false) + const [gitRisks, setGitRisks] = useState([]); + const [selectedRiskStatus, setSelectedRiskStatus] = useState(""); + + const handleSelectRiskStatusUpdate = (event: any) => { + setSelectedRiskStatus(event.target.value); + }; + + console.log("selectedRiskStatus===>", selectedRiskStatus) + + useEffect(()=>{ + const fetchRisks = async () =>{ + const risks = await getRisksByOrganization(String(localStorage.getItem("orgData.id"))) + setGitRisks(risks) + } + + const linkInstallation = async () => { + if (typeof state === "string" && typeof installationId === "string"){ + try { + await linkGitAppInstallationWithOrganization(installationId as string, state as string) + console.log("installation verification complete") + }catch (e){ + console.log("app installation is stale, start new session", e) + } + } + } + + const fetchInstallationStatus = async () => { + const status = await getInstallationStatus(String(localStorage.getItem("orgData.id"))) + setIntegrationStatus(status) + } + + fetchInstallationStatus() + linkInstallation() + fetchRisks() + },[state, installationId]) + + const generateNewIntegrationSession = async () => { + const session = await createNewIntegrationSession(String(localStorage.getItem("orgData.id"))) + router.push(`https://github.com/apps/infisical-radar/installations/new?state=${session.sessionId}`) + } + + return ( +
    + + Secret scanning + + + + {/* */} + +
    + {integrationEnabled ? ( + Git app is linked to this organization + ) : ( + + )} +
    + + + + + + + + + + + + + + {gitRisks.map((risk) => { + return ( + + + + + + + + + + ); + })} + +
    + Date + + Secret Type + + View Risk + + Info + + Status + + Action +
    {risk.createdAt}{risk.ruleID} + + View Exposed Secret + + + +
    + {risk.file}
    +
    + {risk.author}
    + {risk.email} +
    +
    + {risk.isResolved ? "Resolved" : "Needs Attention"} + + {risk.isResolved ? "Resolved" : "Needs Attention"} + + +
    + +
    + ); +} diff --git a/nginx/default.dev.conf b/nginx/default.dev.conf index 94c5d7b67..2390602a8 100644 --- a/nginx/default.dev.conf +++ b/nginx/default.dev.conf @@ -13,6 +13,20 @@ server { proxy_cookie_path / "/; secure; HttpOnly; SameSite=strict"; } + + location /git-app-api { + proxy_set_header X-Real-RIP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + + proxy_set_header Host $http_host; + proxy_set_header X-NginX-Proxy true; + + proxy_pass http://git-app:3000/; + proxy_redirect off; + # proxy_redirect http://localhost:8080/ http://frontend.example.com/; + + proxy_cookie_path / "/; secure; HttpOnly; SameSite=strict"; + } location / { include /etc/nginx/mime.types; diff --git a/package-lock.json b/package-lock.json index cf02a1760..a77f10e02 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,1941 +1,1941 @@ { - "name": "infisical", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "infisical", - "license": "ISC", - "devDependencies": { - "eslint": "^8.29.0", - "husky": "^8.0.2" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz", - "integrity": "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==", - "dev": true, - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.4.0", - "globals": "^13.15.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.7", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.7.tgz", - "integrity": "sha512-kBbPWzN8oVMLb0hOUYXhmxggL/1cJE6ydvjDIGi9EnAGUyA7cLVKQg+d/Dsm+KZwx2czGHrCmMVLiyg8s5JPKw==", - "dev": true, - "dependencies": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.5" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true - }, - "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/acorn": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", - "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "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/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": 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/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/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/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/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/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/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/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/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/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/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/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint": { - "version": "8.29.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.29.0.tgz", - "integrity": "sha512-isQ4EEiyUjZFbEKvEGJKKGBwXtvXX+zJbkVKCgTuB9t/+jUBcy8avhkEwWJecI15BkRkOYmvIM5ynbhRjEkoeg==", - "dev": true, - "dependencies": { - "@eslint/eslintrc": "^1.3.3", - "@humanwhocodes/config-array": "^0.11.6", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.1", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.4.0", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.15.0", - "grapheme-splitter": "^1.0.4", - "ignore": "^5.2.0", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-sdsl": "^4.1.4", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "regexpp": "^3.2.0", - "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^2.0.0" - }, - "engines": { - "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=5" - } - }, - "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/espree": { - "version": "9.4.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", - "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", - "dev": true, - "dependencies": { - "acorn": "^8.8.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", - "dev": true, - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "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, - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "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, - "engines": { - "node": ">=4.0" - } - }, - "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, - "engines": { - "node": ">=0.10.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 - }, - "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 - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "node_modules/fastq": { - "version": "1.14.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.14.0.tgz", - "integrity": "sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg==", - "dev": true, - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, - "dependencies": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/flatted": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", - "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", - "dev": true - }, - "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/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/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/globals": { - "version": "13.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.18.0.tgz", - "integrity": "sha512-/mR4KI8Ps2spmoc0Ulu9L7agOF0du1CZNQ3dke8yItYlyKNmGrkONemBbd6V8UTc1Wgcqn21t3WYB7dbRmh6/A==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", - "dev": true - }, - "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/husky": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.2.tgz", - "integrity": "sha512-Tkv80jtvbnkK3mYWxPZePGFpQ/tT3HNSs/sasF9P2YfkMezDl3ON37YN6jUUI4eTg5LcyVynlb6r4eyvOmspvg==", - "dev": true, - "bin": { - "husky": "lib/bin.js" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/typicode" - } - }, - "node_modules/ignore": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.1.tgz", - "integrity": "sha512-d2qQLzTJ9WxQftPAuEQpSPmKqzxePjzVbpAVv62AQ64NTL+wR4JkrVqR/LqFsFEUsHDAiId52mJteHDFuDkElA==", - "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/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/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-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-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==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "node_modules/js-sdsl": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.2.0.tgz", - "integrity": "sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/js-sdsl" - } - }, - "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/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 - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "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/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "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==", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "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==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "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/regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "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/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/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/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/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==", - "dev": true, - "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==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "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-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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, - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "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==", - "dev": true - }, - "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==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - } - }, - "dependencies": { - "@eslint/eslintrc": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz", - "integrity": "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==", - "dev": true, - "requires": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.4.0", - "globals": "^13.15.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - } - }, - "@humanwhocodes/config-array": { - "version": "0.11.7", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.7.tgz", - "integrity": "sha512-kBbPWzN8oVMLb0hOUYXhmxggL/1cJE6ydvjDIGi9EnAGUyA7cLVKQg+d/Dsm+KZwx2czGHrCmMVLiyg8s5JPKw==", - "dev": true, - "requires": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.5" - } - }, - "@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true - }, - "@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true - }, - "@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, - "requires": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - } - }, - "@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 - }, - "@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, - "requires": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - } - }, - "acorn": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", - "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", - "dev": true - }, - "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, - "requires": {} - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "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 - }, - "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, - "requires": { - "color-convert": "^2.0.1" - } - }, - "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 - }, - "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 - }, - "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, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "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, - "requires": { - "color-name": "~1.1.4" - } - }, - "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 - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true - }, - "eslint": { - "version": "8.29.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.29.0.tgz", - "integrity": "sha512-isQ4EEiyUjZFbEKvEGJKKGBwXtvXX+zJbkVKCgTuB9t/+jUBcy8avhkEwWJecI15BkRkOYmvIM5ynbhRjEkoeg==", - "dev": true, - "requires": { - "@eslint/eslintrc": "^1.3.3", - "@humanwhocodes/config-array": "^0.11.6", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.1", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.4.0", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.15.0", - "grapheme-splitter": "^1.0.4", - "ignore": "^5.2.0", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-sdsl": "^4.1.4", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "regexpp": "^3.2.0", - "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0" - } - }, - "eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - } - }, - "eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^2.0.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true - } - } - }, - "eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", - "dev": true - }, - "espree": { - "version": "9.4.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", - "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", - "dev": true, - "requires": { - "acorn": "^8.8.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" - } - }, - "esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", - "dev": true, - "requires": { - "estraverse": "^5.1.0" - } - }, - "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, - "requires": { - "estraverse": "^5.2.0" - } - }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true - }, - "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 - }, - "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 - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "fastq": { - "version": "1.14.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.14.0.tgz", - "integrity": "sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg==", - "dev": true, - "requires": { - "reusify": "^1.0.4" - } - }, - "file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "requires": { - "flat-cache": "^3.0.4" - } - }, - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, - "requires": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - } - }, - "flatted": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", - "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", - "dev": true - }, - "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 - }, - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "requires": { - "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" - } - }, - "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, - "requires": { - "is-glob": "^4.0.3" - } - }, - "globals": { - "version": "13.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.18.0.tgz", - "integrity": "sha512-/mR4KI8Ps2spmoc0Ulu9L7agOF0du1CZNQ3dke8yItYlyKNmGrkONemBbd6V8UTc1Wgcqn21t3WYB7dbRmh6/A==", - "dev": true, - "requires": { - "type-fest": "^0.20.2" - } - }, - "grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", - "dev": true - }, - "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 - }, - "husky": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.2.tgz", - "integrity": "sha512-Tkv80jtvbnkK3mYWxPZePGFpQ/tT3HNSs/sasF9P2YfkMezDl3ON37YN6jUUI4eTg5LcyVynlb6r4eyvOmspvg==", - "dev": true - }, - "ignore": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.1.tgz", - "integrity": "sha512-d2qQLzTJ9WxQftPAuEQpSPmKqzxePjzVbpAVv62AQ64NTL+wR4JkrVqR/LqFsFEUsHDAiId52mJteHDFuDkElA==", - "dev": true - }, - "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, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true - }, - "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, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true - }, - "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, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "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==", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "js-sdsl": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.2.0.tgz", - "integrity": "sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ==", - "dev": true - }, - "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, - "requires": { - "argparse": "^2.0.1" - } - }, - "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 - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true - }, - "levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - } - }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "requires": { - "p-locate": "^5.0.0" - } - }, - "lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, - "requires": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - } - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "requires": { - "p-limit": "^3.0.2" - } - }, - "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, - "requires": { - "callsites": "^3.0.0" - } - }, - "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 - }, - "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 - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true - }, - "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 - }, - "regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true - }, - "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 - }, - "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "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, - "requires": { - "queue-microtask": "^1.2.2" - } - }, - "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==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "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, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true - }, - "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, - "requires": { - "has-flag": "^4.0.0" - } - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, - "type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1" - } - }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, - "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==", - "dev": true - } - } + "name": "infisical", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "infisical", + "license": "ISC", + "devDependencies": { + "eslint": "^8.29.0", + "husky": "^8.0.2" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz", + "integrity": "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.4.0", + "globals": "^13.15.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.7", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.7.tgz", + "integrity": "sha512-kBbPWzN8oVMLb0hOUYXhmxggL/1cJE6ydvjDIGi9EnAGUyA7cLVKQg+d/Dsm+KZwx2czGHrCmMVLiyg8s5JPKw==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "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/acorn": { + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", + "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "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/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": 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/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/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/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/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/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/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/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/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/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/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/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.29.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.29.0.tgz", + "integrity": "sha512-isQ4EEiyUjZFbEKvEGJKKGBwXtvXX+zJbkVKCgTuB9t/+jUBcy8avhkEwWJecI15BkRkOYmvIM5ynbhRjEkoeg==", + "dev": true, + "dependencies": { + "@eslint/eslintrc": "^1.3.3", + "@humanwhocodes/config-array": "^0.11.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.4.0", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.15.0", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-sdsl": "^4.1.4", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/espree": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", + "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", + "dev": true, + "dependencies": { + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "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, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "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, + "engines": { + "node": ">=4.0" + } + }, + "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, + "engines": { + "node": ">=0.10.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 + }, + "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 + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.14.0.tgz", + "integrity": "sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "dev": true + }, + "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/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/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/globals": { + "version": "13.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.18.0.tgz", + "integrity": "sha512-/mR4KI8Ps2spmoc0Ulu9L7agOF0du1CZNQ3dke8yItYlyKNmGrkONemBbd6V8UTc1Wgcqn21t3WYB7dbRmh6/A==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "dev": true + }, + "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/husky": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.2.tgz", + "integrity": "sha512-Tkv80jtvbnkK3mYWxPZePGFpQ/tT3HNSs/sasF9P2YfkMezDl3ON37YN6jUUI4eTg5LcyVynlb6r4eyvOmspvg==", + "dev": true, + "bin": { + "husky": "lib/bin.js" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/typicode" + } + }, + "node_modules/ignore": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.1.tgz", + "integrity": "sha512-d2qQLzTJ9WxQftPAuEQpSPmKqzxePjzVbpAVv62AQ64NTL+wR4JkrVqR/LqFsFEUsHDAiId52mJteHDFuDkElA==", + "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/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/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-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-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==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/js-sdsl": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.2.0.tgz", + "integrity": "sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/js-sdsl" + } + }, + "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/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 + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "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/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "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==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "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==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "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/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "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/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/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/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/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==", + "dev": true, + "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==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "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-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "dev": true + }, + "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==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + }, + "dependencies": { + "@eslint/eslintrc": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz", + "integrity": "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.4.0", + "globals": "^13.15.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + } + }, + "@humanwhocodes/config-array": { + "version": "0.11.7", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.7.tgz", + "integrity": "sha512-kBbPWzN8oVMLb0hOUYXhmxggL/1cJE6ydvjDIGi9EnAGUyA7cLVKQg+d/Dsm+KZwx2czGHrCmMVLiyg8s5JPKw==", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + } + }, + "@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true + }, + "@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "@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, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@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 + }, + "@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, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "acorn": { + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", + "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", + "dev": true + }, + "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, + "requires": {} + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "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 + }, + "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, + "requires": { + "color-convert": "^2.0.1" + } + }, + "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 + }, + "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 + }, + "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, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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, + "requires": { + "color-name": "~1.1.4" + } + }, + "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 + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "eslint": { + "version": "8.29.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.29.0.tgz", + "integrity": "sha512-isQ4EEiyUjZFbEKvEGJKKGBwXtvXX+zJbkVKCgTuB9t/+jUBcy8avhkEwWJecI15BkRkOYmvIM5ynbhRjEkoeg==", + "dev": true, + "requires": { + "@eslint/eslintrc": "^1.3.3", + "@humanwhocodes/config-array": "^0.11.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.4.0", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.15.0", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-sdsl": "^4.1.4", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0" + } + }, + "eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + } + }, + "eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^2.0.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true + } + } + }, + "eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true + }, + "espree": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", + "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", + "dev": true, + "requires": { + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" + } + }, + "esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + } + }, + "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, + "requires": { + "estraverse": "^5.2.0" + } + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "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 + }, + "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 + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "fastq": { + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.14.0.tgz", + "integrity": "sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "requires": { + "flat-cache": "^3.0.4" + } + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "dev": true + }, + "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 + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "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" + } + }, + "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, + "requires": { + "is-glob": "^4.0.3" + } + }, + "globals": { + "version": "13.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.18.0.tgz", + "integrity": "sha512-/mR4KI8Ps2spmoc0Ulu9L7agOF0du1CZNQ3dke8yItYlyKNmGrkONemBbd6V8UTc1Wgcqn21t3WYB7dbRmh6/A==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "dev": true + }, + "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 + }, + "husky": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.2.tgz", + "integrity": "sha512-Tkv80jtvbnkK3mYWxPZePGFpQ/tT3HNSs/sasF9P2YfkMezDl3ON37YN6jUUI4eTg5LcyVynlb6r4eyvOmspvg==", + "dev": true + }, + "ignore": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.1.tgz", + "integrity": "sha512-d2qQLzTJ9WxQftPAuEQpSPmKqzxePjzVbpAVv62AQ64NTL+wR4JkrVqR/LqFsFEUsHDAiId52mJteHDFuDkElA==", + "dev": true + }, + "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, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true + }, + "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, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true + }, + "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, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "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==", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "js-sdsl": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.2.0.tgz", + "integrity": "sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ==", + "dev": true + }, + "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, + "requires": { + "argparse": "^2.0.1" + } + }, + "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 + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "requires": { + "p-locate": "^5.0.0" + } + }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "requires": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "requires": { + "p-limit": "^3.0.2" + } + }, + "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, + "requires": { + "callsites": "^3.0.0" + } + }, + "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 + }, + "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 + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "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 + }, + "regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true + }, + "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 + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "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, + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "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==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "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, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + }, + "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, + "requires": { + "has-flag": "^4.0.0" + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "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==", + "dev": true + } + } } diff --git a/secret-engine/.eslintrc b/secret-engine/.eslintrc new file mode 100644 index 000000000..d66289aa9 --- /dev/null +++ b/secret-engine/.eslintrc @@ -0,0 +1,14 @@ +{ + "parser": "@typescript-eslint/parser", + "parserOptions": { + "sourceType": "module", + "ecmaVersion": 2020 + }, + "plugins": [ + "@typescript-eslint" + ], + // "extends": [ + // "eslint:recommended", + // "plugin:@typescript-eslint/recommended" + // ] +} \ No newline at end of file diff --git a/secret-engine/Dockerfile.dev b/secret-engine/Dockerfile.dev new file mode 100644 index 000000000..b40ba2365 --- /dev/null +++ b/secret-engine/Dockerfile.dev @@ -0,0 +1,13 @@ +FROM node:18-slim +WORKDIR app/ +COPY package.json package-lock.json ./ +RUN npm ci +RUN npm cache clean --force +COPY . . + +RUN apt-get update && apt-get install -y bash curl && curl -1sLf \ + 'https://dl.cloudsmith.io/public/infisical/infisical-cli/setup.deb.sh' | bash \ + && apt-get update && apt-get install -y infisical=0.8.1 + + +CMD [ "npm", "start" ] diff --git a/secret-engine/package-lock.json b/secret-engine/package-lock.json index dfaeb146a..88d013a6d 100644 --- a/secret-engine/package-lock.json +++ b/secret-engine/package-lock.json @@ -9,13 +9,19 @@ "version": "1.0.0", "license": "ISC", "dependencies": { - "probot": "^12.2.4" + "mongoose": "^7.3.1", + "probot": "^12.2.4", + "ts-node": "^10.9.1" }, "devDependencies": { "@types/jest": "^29.0.0", "@types/node": "^18.0.0", + "@typescript-eslint/eslint-plugin": "^5.61.0", + "@typescript-eslint/parser": "^5.61.0", + "eslint": "^8.44.0", "jest": "^29.0.0", "nock": "^13.0.5", + "nodemon": "^2.0.22", "smee-client": "^1.2.2", "ts-jest": "^29.0.0", "typescript": "^4.1.3" @@ -24,6 +30,15 @@ "node": ">= 10.13.0" } }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/@ampproject/remapping": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", @@ -596,11 +611,165 @@ "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", "dev": true }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.1.tgz", + "integrity": "sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.0.tgz", + "integrity": "sha512-Lj7DECXqIVCqnqjjHMPna4vn6GJcMgul/wuS0je9OZ9gsL0zzDpKPVtcG1HaDVc+9y+qgXneTeUMbCqXJNpH1A==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/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/@eslint/eslintrc/node_modules/globals": { + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/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/@eslint/eslintrc/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "8.44.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.44.0.tgz", + "integrity": "sha512-Ag+9YM4ocKQx9AarydN0KY2j0ErMHNIocPDrVo8zAE44xLTjEtz81OdR68/cydGtk6m6jDb5Za3r2useMzYmSw==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, "node_modules/@hapi/bourne": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-2.1.0.tgz", "integrity": "sha512-i1BpaNDVLJdRBEKeJWkVO6tYX6DMFBuwMhSuWqLsY4ufeTKGVuV5rBsUhxPayXqnnWHgXUAmWK16H/ykO5Wj4Q==" }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.10.tgz", + "integrity": "sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, "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", @@ -985,7 +1154,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "dev": true, "engines": { "node": ">=6.0.0" } @@ -1002,8 +1170,7 @@ "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==", - "dev": true + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.18", @@ -1021,6 +1188,41 @@ "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", "dev": true }, + "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/@octokit/auth-app": { "version": "4.0.13", "resolved": "https://registry.npmjs.org/@octokit/auth-app/-/auth-app-4.0.13.tgz", @@ -1881,6 +2083,26 @@ "@sinonjs/commons": "^3.0.0" } }, + "node_modules/@tsconfig/node10": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==" + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==" + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==" + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==" + }, "node_modules/@types/babel__core": { "version": "7.20.1", "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.1.tgz", @@ -2027,6 +2249,12 @@ "resolved": "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-4.0.5.tgz", "integrity": "sha512-FhpRzf927MNQdRZP0J5DLIdTXhjLYzeUTmLAu69mnVksLH9CJY3IuSeEgbKUki7GQZm0WqDkGzyxju2EZGD2wA==" }, + "node_modules/@types/json-schema": { + "version": "7.0.12", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.12.tgz", + "integrity": "sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==", + "dev": true + }, "node_modules/@types/jsonwebtoken": { "version": "9.0.2", "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz", @@ -2098,6 +2326,12 @@ "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" }, + "node_modules/@types/semver": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.0.tgz", + "integrity": "sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==", + "dev": true + }, "node_modules/@types/send": { "version": "0.17.1", "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.1.tgz", @@ -2122,6 +2356,20 @@ "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", "dev": true }, + "node_modules/@types/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-xTE1E+YF4aWPJJeUzaZI5DRntlkY3+BCVJi0axFptnjGmAoWxkyREIh/XMrfxVLejwQxMCfDXdICo0VLxThrog==" + }, + "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==", + "dependencies": { + "@types/node": "*", + "@types/webidl-conversions": "*" + } + }, "node_modules/@types/yargs": { "version": "17.0.24", "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.24.tgz", @@ -2137,6 +2385,321 @@ "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", "dev": true }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.61.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.61.0.tgz", + "integrity": "sha512-A5l/eUAug103qtkwccSCxn8ZRwT+7RXWkFECdA4Cvl1dOlDUgTpAOfSEElZn2uSUxhdDpnCdetrf0jvU4qrL+g==", + "dev": true, + "dependencies": { + "@eslint-community/regexpp": "^4.4.0", + "@typescript-eslint/scope-manager": "5.61.0", + "@typescript-eslint/type-utils": "5.61.0", + "@typescript-eslint/utils": "5.61.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/eslint-plugin/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==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { + "version": "7.5.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", + "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/@typescript-eslint/parser": { + "version": "5.61.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.61.0.tgz", + "integrity": "sha512-yGr4Sgyh8uO6fSi9hw3jAFXNBHbCtKKFMdX2IkT3ZqpKmtAq3lHS4ixB/COFuAIJpwl9/AqF7j72ZDWYKmIfvg==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "5.61.0", + "@typescript-eslint/types": "5.61.0", + "@typescript-eslint/typescript-estree": "5.61.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.61.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.61.0.tgz", + "integrity": "sha512-W8VoMjoSg7f7nqAROEmTt6LoBpn81AegP7uKhhW5KzYlehs8VV0ZW0fIDVbcZRcaP3aPSW+JZFua+ysQN+m/Nw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.61.0", + "@typescript-eslint/visitor-keys": "5.61.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "5.61.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.61.0.tgz", + "integrity": "sha512-kk8u//r+oVK2Aj3ph/26XdH0pbAkC2RiSjUYhKD+PExemG4XSjpGFeyZ/QM8lBOa7O8aGOU+/yEbMJgQv/DnCg==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "5.61.0", + "@typescript-eslint/utils": "5.61.0", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.61.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.61.0.tgz", + "integrity": "sha512-ldyueo58KjngXpzloHUog/h9REmHl59G1b3a5Sng1GfBo14BkS3ZbMEb3693gnP1k//97lh7bKsp6/V/0v1veQ==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.61.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.61.0.tgz", + "integrity": "sha512-Fud90PxONnnLZ36oR5ClJBLTLfU4pIWBmnvGwTbEa2cXIqj70AEDEmOmpkFComjBZ/037ueKrOdHuYmSFVD7Rw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.61.0", + "@typescript-eslint/visitor-keys": "5.61.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/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==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.5.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", + "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/@typescript-eslint/utils": { + "version": "5.61.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.61.0.tgz", + "integrity": "sha512-mV6O+6VgQmVE6+xzlA91xifndPW9ElFW8vbSF0xCT/czPXVhwDewKila1jOyRwa9AE19zKnrr7Cg5S3pJVrTWQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.61.0", + "@typescript-eslint/types": "5.61.0", + "@typescript-eslint/typescript-estree": "5.61.0", + "eslint-scope": "^5.1.1", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/utils/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, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/@typescript-eslint/utils/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==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/semver": { + "version": "7.5.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", + "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.61.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.61.0.tgz", + "integrity": "sha512-50XQ5VdbWrX06mQXhy93WywSFZZGsv3EOjq+lqp6WC2t+j3mb6A9xYVdrRxafvK88vg9k9u+CT4l6D8PEatjKg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.61.0", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, "node_modules/accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", @@ -2149,6 +2712,34 @@ "node": ">= 0.6" } }, + "node_modules/acorn": { + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.9.0.tgz", + "integrity": "sha512-jaVNAFBHNLXspO543WnNNPZFRtavh3skAkITqD0/2aeMkKZTN+254PyhwxFYrk3vQ1xfY+2wbesJMs/JC8/PwQ==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "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/acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/agent-base": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", @@ -2172,6 +2763,22 @@ "node": ">=8" } }, + "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, + "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/ansi-escapes": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", @@ -2224,6 +2831,11 @@ "node": ">= 8" } }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" + }, "node_modules/argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", @@ -2331,6 +2943,15 @@ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" }, + "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/asap": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", @@ -2470,6 +3091,15 @@ "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz", "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==" }, + "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/body-parser": { "version": "1.20.1", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", @@ -2586,6 +3216,14 @@ "node-int64": "^0.4.0" } }, + "node_modules/bson": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/bson/-/bson-5.3.0.tgz", + "integrity": "sha512-ukmCZMneMlaC5ebPHXIkP8YJzNl5DC41N5MAIvKDqLggdao342t4McltoJBQfQya/nHBWAcSsYRqlXPoQkTJag==", + "engines": { + "node": ">=14.20.1" + } + }, "node_modules/btoa-lite": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/btoa-lite/-/btoa-lite-1.0.0.tgz", @@ -2685,6 +3323,33 @@ "node": ">=10" } }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "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" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, "node_modules/ci-info": { "version": "3.8.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", @@ -2851,6 +3516,11 @@ "integrity": "sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==", "dev": true }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" + }, "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -2895,6 +3565,12 @@ "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", "dev": true }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, "node_modules/deepmerge": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", @@ -2961,6 +3637,14 @@ "wrappy": "1" } }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "engines": { + "node": ">=0.3.1" + } + }, "node_modules/diff-sequences": { "version": "29.4.3", "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.4.3.tgz", @@ -2970,6 +3654,30 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "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/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/dotenv": { "version": "8.6.0", "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz", @@ -3062,6 +3770,222 @@ "node": ">=8" } }, + "node_modules/eslint": { + "version": "8.44.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.44.0.tgz", + "integrity": "sha512-0wpHoUbDUHgNCyvFB5aXLiQVfK9B0at6gUvzy83k4kAsQ/u769TQDX6iKC+aO4upIHO9WSaA3QoXYQDHbNwf1A==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.4.0", + "@eslint/eslintrc": "^2.1.0", + "@eslint/js": "8.44.0", + "@humanwhocodes/config-array": "^0.11.10", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.0", + "eslint-visitor-keys": "^3.4.1", + "espree": "^9.6.0", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz", + "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", + "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/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/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/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/eslint/node_modules/globals": { + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/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/eslint/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/espree": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.0.tgz", + "integrity": "sha512-1FH/IiruXZ84tpUlm0aCUEwMl2Ho5ilqVh0VvQXw+byAz/4SAciyHLlfmL5WYqsvD38oymdUwBss0LtK8m4s/A==", + "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", @@ -3074,6 +3998,48 @@ "node": ">=4" } }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "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, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "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, + "engines": { + "node": ">=4.0" + } + }, + "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, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", @@ -3250,12 +4216,40 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, + "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 + }, + "node_modules/fast-glob": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.0.tgz", + "integrity": "sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA==", + "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-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 }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, "node_modules/fast-redact": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.2.0.tgz", @@ -3277,6 +4271,15 @@ "punycode": "^1.3.2" } }, + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, "node_modules/fb-watchman": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", @@ -3286,6 +4289,18 @@ "bser": "2.1.1" } }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, "node_modules/fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -3341,11 +4356,30 @@ "node": ">=8" } }, + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, "node_modules/flatstr": { "version": "1.0.12", "resolved": "https://registry.npmjs.org/flatstr/-/flatstr-1.0.12.tgz", "integrity": "sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw==" }, + "node_modules/flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "dev": true + }, "node_modules/form-data": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", @@ -3488,6 +4522,18 @@ "url": "https://github.com/sponsors/isaacs" } }, + "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/globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", @@ -3497,11 +4543,37 @@ "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/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/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, "node_modules/handlebars": { "version": "4.7.7", "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", @@ -3626,6 +4698,46 @@ "node": ">=0.10.0" } }, + "node_modules/ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", + "dev": true + }, + "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/import-fresh/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/import-local": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", @@ -3701,6 +4813,11 @@ "url": "https://opencollective.com/ioredis" } }, + "node_modules/ip": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", + "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==" + }, "node_modules/ipaddr.js": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", @@ -3723,6 +4840,18 @@ "is-base64": "bin/is-base64" } }, + "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-core-module": { "version": "2.12.1", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", @@ -3734,6 +4863,15 @@ "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", @@ -3752,6 +4890,18 @@ "node": ">=6" } }, + "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-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -3761,6 +4911,15 @@ "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==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/is-plain-object": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", @@ -4519,6 +5678,18 @@ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "dev": true }, + "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 + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": 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", @@ -4601,6 +5772,14 @@ "safe-buffer": "^5.0.1" } }, + "node_modules/kareem": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.5.1.tgz", + "integrity": "sha512-7jFxRVm+jD+rkq3kY0iZDJfsO2/t4BBPeEb2qKn2lR/9KhuksYk5hxzfRYWMPV8P/x2d0kHD306YyWLzjjH+uA==", + "engines": { + "node": ">=12.0.0" + } + }, "node_modules/kleur": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", @@ -4619,6 +5798,19 @@ "node": ">=6" } }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/lines-and-columns": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", @@ -4694,6 +5886,12 @@ "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", "dev": true }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, "node_modules/lru_map": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz", @@ -4726,8 +5924,7 @@ "node_modules/make-error": { "version": "1.3.6", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" }, "node_modules/makeerror": { "version": "1.0.12", @@ -4746,6 +5943,12 @@ "node": ">= 0.6" } }, + "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==", + "optional": true + }, "node_modules/merge-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", @@ -4757,6 +5960,15 @@ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", "dev": true }, + "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/methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", @@ -4837,6 +6049,112 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/mongodb": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-5.6.0.tgz", + "integrity": "sha512-z8qVs9NfobHJm6uzK56XBZF8XwM9H294iRnB7wNjF0SnY93si5HPziIJn+qqvUR5QOff/4L0gCD6SShdR/GtVQ==", + "dependencies": { + "bson": "^5.3.0", + "mongodb-connection-string-url": "^2.6.0", + "socks": "^2.7.1" + }, + "engines": { + "node": ">=14.20.1" + }, + "optionalDependencies": { + "saslprep": "^1.0.3" + }, + "peerDependencies": { + "@aws-sdk/credential-providers": "^3.201.0", + "mongodb-client-encryption": ">=2.3.0 <3", + "snappy": "^7.2.2" + }, + "peerDependenciesMeta": { + "@aws-sdk/credential-providers": { + "optional": true + }, + "mongodb-client-encryption": { + "optional": true + }, + "snappy": { + "optional": true + } + } + }, + "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==", + "dependencies": { + "@types/whatwg-url": "^8.2.1", + "whatwg-url": "^11.0.0" + } + }, + "node_modules/mongodb-connection-string-url/node_modules/punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/mongodb-connection-string-url/node_modules/tr46": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", + "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/mongodb-connection-string-url/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==", + "engines": { + "node": ">=12" + } + }, + "node_modules/mongodb-connection-string-url/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==", + "dependencies": { + "tr46": "^3.0.0", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/mongoose": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-7.3.1.tgz", + "integrity": "sha512-6289bmSIhvR8xMHsYe2/CuzN7wHK+2RHcK7idDdzniCPC5zix5JH0Hc4k3CmXlr/9zQ2250gUQiUWtvDB0vF1Q==", + "dependencies": { + "bson": "^5.3.0", + "kareem": "2.5.1", + "mongodb": "5.6.0", + "mpath": "0.9.0", + "mquery": "5.0.0", + "ms": "2.1.3", + "sift": "16.0.1" + }, + "engines": { + "node": ">=14.20.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mongoose" + } + }, + "node_modules/mongoose/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, "node_modules/morgan": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz", @@ -4880,6 +6198,25 @@ "node": ">= 0.8" } }, + "node_modules/mpath": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.9.0.tgz", + "integrity": "sha512-ikJRQTk8hw5DEoFVxHG1Gn9T/xcjtdnOKIU1JTmGjZZlg9LST2mBLmcX3/ICIbgJydT2GOc15RnNy5mHmzfSew==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/mquery": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/mquery/-/mquery-5.0.0.tgz", + "integrity": "sha512-iQMncpmEK8R8ncT8HJGsGc9Dsp8xcgYMVSbs5jgnm1lFHTZqMJTUWTDx1LBO8+mK3tPNZWFLBghQEIOULSTHZg==", + "dependencies": { + "debug": "4.x" + }, + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/mri": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/mri/-/mri-1.1.4.tgz", @@ -4899,6 +6236,12 @@ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, + "node_modules/natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", + "dev": true + }, "node_modules/negotiator": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", @@ -4958,6 +6301,88 @@ "integrity": "sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ==", "dev": true }, + "node_modules/nodemon": { + "version": "2.0.22", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.22.tgz", + "integrity": "sha512-B8YqaKMmyuCO7BowF1Z1/mkPqLk6cs/l63Ojtd6otKjMx47Dq1utxfRxcavH1I7VSaL8n5BUaoutadnsX3AAVQ==", + "dev": true, + "dependencies": { + "chokidar": "^3.5.2", + "debug": "^3.2.7", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.1.2", + "pstree.remy": "^1.1.8", + "semver": "^5.7.1", + "simple-update-notifier": "^1.0.7", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.5" + }, + "bin": { + "nodemon": "bin/nodemon.js" + }, + "engines": { + "node": ">=8.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nodemon" + } + }, + "node_modules/nodemon/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/nodemon/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==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/nodemon/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/nodemon/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==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==", + "dev": true, + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "*" + } + }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -5052,6 +6477,23 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dev": true, + "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -5110,6 +6552,18 @@ "node": ">=6" } }, + "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/parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", @@ -5167,6 +6621,15 @@ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" }, + "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/picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", @@ -5363,6 +6826,15 @@ "node": ">=8" } }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/pretty-format": { "version": "29.5.0", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.5.0.tgz", @@ -5504,6 +6976,12 @@ "node": ">= 0.10" } }, + "node_modules/pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", + "dev": true + }, "node_modules/pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", @@ -5548,6 +7026,26 @@ "url": "https://github.com/sponsors/ljharb" } }, + "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/quick-format-unescaped": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz", @@ -5594,6 +7092,18 @@ "node": ">= 6" } }, + "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/redis-commands": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/redis-commands/-/redis-commands-1.7.0.tgz", @@ -5673,11 +7183,59 @@ "node": ">=10" } }, + "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.0", "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==" }, + "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/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/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -5702,6 +7260,18 @@ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, + "node_modules/saslprep": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz", + "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==", + "optional": true, + "dependencies": { + "sparse-bitfield": "^3.0.3" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", @@ -5805,12 +7375,38 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/sift": { + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/sift/-/sift-16.0.1.tgz", + "integrity": "sha512-Wv6BjQ5zbhW7VFefWusVP33T/EM0vYikCaQ2qR8yULbsilAT8/wQaXvuQ3ptGLpoKx+lihJE3y2UTgKDyyNHZQ==" + }, "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/simple-update-notifier": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz", + "integrity": "sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==", + "dev": true, + "dependencies": { + "semver": "~7.0.0" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/simple-update-notifier/node_modules/semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/sisteransi": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", @@ -5826,6 +7422,15 @@ "node": ">=8" } }, + "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==", + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, "node_modules/smee-client": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/smee-client/-/smee-client-1.2.3.tgz", @@ -5857,6 +7462,19 @@ "node": ">=0.12.0" } }, + "node_modules/socks": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", + "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", + "dependencies": { + "ip": "^2.0.0", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 3.0.0" + } + }, "node_modules/sonic-boom": { "version": "2.8.0", "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-2.8.0.tgz", @@ -5883,6 +7501,15 @@ "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==", + "optional": true, + "dependencies": { + "memory-pager": "^1.0.2" + } + }, "node_modules/split2": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", @@ -6101,6 +7728,12 @@ "node": ">=8" } }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, "node_modules/tmpl": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", @@ -6136,6 +7769,18 @@ "node": ">=0.6" } }, + "node_modules/touch": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", + "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", + "dev": true, + "dependencies": { + "nopt": "~1.0.10" + }, + "bin": { + "nodetouch": "bin/nodetouch.js" + } + }, "node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", @@ -6217,11 +7862,80 @@ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, + "node_modules/ts-node": { + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, "node_modules/tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/type-detect": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", @@ -6259,7 +7973,6 @@ "version": "4.9.5", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", - "dev": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -6280,6 +7993,12 @@ "node": ">=0.8.0" } }, + "node_modules/undefsafe": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", + "dev": true + }, "node_modules/universal-github-app-jwt": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/universal-github-app-jwt/-/universal-github-app-jwt-1.1.1.tgz", @@ -6340,6 +8059,24 @@ "dotenv": "*" } }, + "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, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/uri-js/node_modules/punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -6361,6 +8098,11 @@ "uuid": "dist/bin/uuid" } }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==" + }, "node_modules/v8-to-istanbul": { "version": "9.1.0", "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz", @@ -6518,6 +8260,14 @@ "node": ">=12" } }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "engines": { + "node": ">=6" + } + }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", @@ -6532,6 +8282,12 @@ } }, "dependencies": { + "@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true + }, "@ampproject/remapping": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", @@ -6963,11 +8719,123 @@ "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", "dev": true }, + "@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "requires": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "dependencies": { + "@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + } + } + }, + "@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^3.3.0" + } + }, + "@eslint-community/regexpp": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.1.tgz", + "integrity": "sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==", + "dev": true + }, + "@eslint/eslintrc": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.0.tgz", + "integrity": "sha512-Lj7DECXqIVCqnqjjHMPna4vn6GJcMgul/wuS0je9OZ9gsL0zzDpKPVtcG1HaDVc+9y+qgXneTeUMbCqXJNpH1A==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "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 + }, + "globals": { + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "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, + "requires": { + "argparse": "^2.0.1" + } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + } + } + }, + "@eslint/js": { + "version": "8.44.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.44.0.tgz", + "integrity": "sha512-Ag+9YM4ocKQx9AarydN0KY2j0ErMHNIocPDrVo8zAE44xLTjEtz81OdR68/cydGtk6m6jDb5Za3r2useMzYmSw==", + "dev": true + }, "@hapi/bourne": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-2.1.0.tgz", "integrity": "sha512-i1BpaNDVLJdRBEKeJWkVO6tYX6DMFBuwMhSuWqLsY4ufeTKGVuV5rBsUhxPayXqnnWHgXUAmWK16H/ykO5Wj4Q==" }, + "@humanwhocodes/config-array": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.10.tgz", + "integrity": "sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + } + }, + "@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true + }, + "@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, "@istanbuljs/load-nyc-config": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", @@ -7265,8 +9133,7 @@ "@jridgewell/resolve-uri": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "dev": true + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==" }, "@jridgewell/set-array": { "version": "1.1.2", @@ -7277,8 +9144,7 @@ "@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==", - "dev": true + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" }, "@jridgewell/trace-mapping": { "version": "0.3.18", @@ -7298,6 +9164,32 @@ } } }, + "@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, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@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 + }, + "@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, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, "@octokit/auth-app": { "version": "4.0.13", "resolved": "https://registry.npmjs.org/@octokit/auth-app/-/auth-app-4.0.13.tgz", @@ -8086,6 +9978,26 @@ "@sinonjs/commons": "^3.0.0" } }, + "@tsconfig/node10": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==" + }, + "@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==" + }, + "@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==" + }, + "@tsconfig/node16": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==" + }, "@types/babel__core": { "version": "7.20.1", "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.1.tgz", @@ -8232,6 +10144,12 @@ "resolved": "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-4.0.5.tgz", "integrity": "sha512-FhpRzf927MNQdRZP0J5DLIdTXhjLYzeUTmLAu69mnVksLH9CJY3IuSeEgbKUki7GQZm0WqDkGzyxju2EZGD2wA==" }, + "@types/json-schema": { + "version": "7.0.12", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.12.tgz", + "integrity": "sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==", + "dev": true + }, "@types/jsonwebtoken": { "version": "9.0.2", "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz", @@ -8301,6 +10219,12 @@ "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" }, + "@types/semver": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.0.tgz", + "integrity": "sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==", + "dev": true + }, "@types/send": { "version": "0.17.1", "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.1.tgz", @@ -8325,6 +10249,20 @@ "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", "dev": true }, + "@types/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-xTE1E+YF4aWPJJeUzaZI5DRntlkY3+BCVJi0axFptnjGmAoWxkyREIh/XMrfxVLejwQxMCfDXdICo0VLxThrog==" + }, + "@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==", + "requires": { + "@types/node": "*", + "@types/webidl-conversions": "*" + } + }, "@types/yargs": { "version": "17.0.24", "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.24.tgz", @@ -8340,6 +10278,205 @@ "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", "dev": true }, + "@typescript-eslint/eslint-plugin": { + "version": "5.61.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.61.0.tgz", + "integrity": "sha512-A5l/eUAug103qtkwccSCxn8ZRwT+7RXWkFECdA4Cvl1dOlDUgTpAOfSEElZn2uSUxhdDpnCdetrf0jvU4qrL+g==", + "dev": true, + "requires": { + "@eslint-community/regexpp": "^4.4.0", + "@typescript-eslint/scope-manager": "5.61.0", + "@typescript-eslint/type-utils": "5.61.0", + "@typescript-eslint/utils": "5.61.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "dependencies": { + "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==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.5.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", + "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "@typescript-eslint/parser": { + "version": "5.61.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.61.0.tgz", + "integrity": "sha512-yGr4Sgyh8uO6fSi9hw3jAFXNBHbCtKKFMdX2IkT3ZqpKmtAq3lHS4ixB/COFuAIJpwl9/AqF7j72ZDWYKmIfvg==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "5.61.0", + "@typescript-eslint/types": "5.61.0", + "@typescript-eslint/typescript-estree": "5.61.0", + "debug": "^4.3.4" + } + }, + "@typescript-eslint/scope-manager": { + "version": "5.61.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.61.0.tgz", + "integrity": "sha512-W8VoMjoSg7f7nqAROEmTt6LoBpn81AegP7uKhhW5KzYlehs8VV0ZW0fIDVbcZRcaP3aPSW+JZFua+ysQN+m/Nw==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.61.0", + "@typescript-eslint/visitor-keys": "5.61.0" + } + }, + "@typescript-eslint/type-utils": { + "version": "5.61.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.61.0.tgz", + "integrity": "sha512-kk8u//r+oVK2Aj3ph/26XdH0pbAkC2RiSjUYhKD+PExemG4XSjpGFeyZ/QM8lBOa7O8aGOU+/yEbMJgQv/DnCg==", + "dev": true, + "requires": { + "@typescript-eslint/typescript-estree": "5.61.0", + "@typescript-eslint/utils": "5.61.0", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/types": { + "version": "5.61.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.61.0.tgz", + "integrity": "sha512-ldyueo58KjngXpzloHUog/h9REmHl59G1b3a5Sng1GfBo14BkS3ZbMEb3693gnP1k//97lh7bKsp6/V/0v1veQ==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "5.61.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.61.0.tgz", + "integrity": "sha512-Fud90PxONnnLZ36oR5ClJBLTLfU4pIWBmnvGwTbEa2cXIqj70AEDEmOmpkFComjBZ/037ueKrOdHuYmSFVD7Rw==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.61.0", + "@typescript-eslint/visitor-keys": "5.61.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "dependencies": { + "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==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.5.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", + "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "@typescript-eslint/utils": { + "version": "5.61.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.61.0.tgz", + "integrity": "sha512-mV6O+6VgQmVE6+xzlA91xifndPW9ElFW8vbSF0xCT/czPXVhwDewKila1jOyRwa9AE19zKnrr7Cg5S3pJVrTWQ==", + "dev": true, + "requires": { + "@eslint-community/eslint-utils": "^4.2.0", + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.61.0", + "@typescript-eslint/types": "5.61.0", + "@typescript-eslint/typescript-estree": "5.61.0", + "eslint-scope": "^5.1.1", + "semver": "^7.3.7" + }, + "dependencies": { + "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, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.5.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", + "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.61.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.61.0.tgz", + "integrity": "sha512-50XQ5VdbWrX06mQXhy93WywSFZZGsv3EOjq+lqp6WC2t+j3mb6A9xYVdrRxafvK88vg9k9u+CT4l6D8PEatjKg==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.61.0", + "eslint-visitor-keys": "^3.3.0" + } + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, "accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", @@ -8349,6 +10486,23 @@ "negotiator": "0.6.3" } }, + "acorn": { + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.9.0.tgz", + "integrity": "sha512-jaVNAFBHNLXspO543WnNNPZFRtavh3skAkITqD0/2aeMkKZTN+254PyhwxFYrk3vQ1xfY+2wbesJMs/JC8/PwQ==" + }, + "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, + "requires": {} + }, + "acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==" + }, "agent-base": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", @@ -8366,6 +10520,18 @@ "indent-string": "^4.0.0" } }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, "ansi-escapes": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", @@ -8400,6 +10566,11 @@ "picomatch": "^2.0.4" } }, + "arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" + }, "argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", @@ -8485,6 +10656,12 @@ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" }, + "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 + }, "asap": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", @@ -8599,6 +10776,12 @@ "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz", "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==" }, + "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 + }, "body-parser": { "version": "1.20.1", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", @@ -8687,6 +10870,11 @@ "node-int64": "^0.4.0" } }, + "bson": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/bson/-/bson-5.3.0.tgz", + "integrity": "sha512-ukmCZMneMlaC5ebPHXIkP8YJzNl5DC41N5MAIvKDqLggdao342t4McltoJBQfQya/nHBWAcSsYRqlXPoQkTJag==" + }, "btoa-lite": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/btoa-lite/-/btoa-lite-1.0.0.tgz", @@ -8751,6 +10939,22 @@ "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", "dev": true }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.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" + } + }, "ci-info": { "version": "3.8.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", @@ -8877,6 +11081,11 @@ "integrity": "sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==", "dev": true }, + "create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" + }, "cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -8907,6 +11116,12 @@ "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", "dev": true }, + "deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, "deepmerge": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", @@ -8954,12 +11169,35 @@ "wrappy": "1" } }, + "diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==" + }, "diff-sequences": { "version": "29.4.3", "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.4.3.tgz", "integrity": "sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==", "dev": true }, + "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, + "requires": { + "path-type": "^4.0.0" + } + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, "dotenv": { "version": "8.6.0", "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz", @@ -9034,11 +11272,190 @@ "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", "dev": true }, + "eslint": { + "version": "8.44.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.44.0.tgz", + "integrity": "sha512-0wpHoUbDUHgNCyvFB5aXLiQVfK9B0at6gUvzy83k4kAsQ/u769TQDX6iKC+aO4upIHO9WSaA3QoXYQDHbNwf1A==", + "dev": true, + "requires": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.4.0", + "@eslint/eslintrc": "^2.1.0", + "@eslint/js": "8.44.0", + "@humanwhocodes/config-array": "^0.11.10", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.0", + "eslint-visitor-keys": "^3.4.1", + "espree": "^9.6.0", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0" + }, + "dependencies": { + "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 + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "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, + "requires": { + "is-glob": "^4.0.3" + } + }, + "globals": { + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "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, + "requires": { + "argparse": "^2.0.1" + } + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "requires": { + "p-locate": "^5.0.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "requires": { + "p-limit": "^3.0.2" + } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + } + } + }, + "eslint-scope": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz", + "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + } + }, + "eslint-visitor-keys": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", + "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", + "dev": true + }, + "espree": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.0.tgz", + "integrity": "sha512-1FH/IiruXZ84tpUlm0aCUEwMl2Ho5ilqVh0VvQXw+byAz/4SAciyHLlfmL5WYqsvD38oymdUwBss0LtK8m4s/A==", + "dev": true, + "requires": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + } + }, "esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" }, + "esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + } + }, + "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, + "requires": { + "estraverse": "^5.2.0" + } + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, "etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", @@ -9183,12 +11600,37 @@ } } }, + "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 + }, + "fast-glob": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.0.tgz", + "integrity": "sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA==", + "dev": true, + "requires": { + "@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" + } + }, "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 }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, "fast-redact": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.2.0.tgz", @@ -9207,6 +11649,15 @@ "punycode": "^1.3.2" } }, + "fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, "fb-watchman": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", @@ -9216,6 +11667,15 @@ "bser": "2.1.1" } }, + "file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "requires": { + "flat-cache": "^3.0.4" + } + }, "fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -9264,11 +11724,27 @@ "path-exists": "^4.0.0" } }, + "flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } + }, "flatstr": { "version": "1.0.12", "resolved": "https://registry.npmjs.org/flatstr/-/flatstr-1.0.12.tgz", "integrity": "sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw==" }, + "flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "dev": true + }, "form-data": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", @@ -9368,17 +11844,46 @@ "path-is-absolute": "^1.0.0" } }, + "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, + "requires": { + "is-glob": "^4.0.1" + } + }, "globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true }, + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "requires": { + "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" + } + }, "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==" }, + "graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, "handlebars": { "version": "4.7.7", "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", @@ -9462,6 +11967,36 @@ "safer-buffer": ">= 2.1.2 < 3" } }, + "ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "dev": true + }, + "ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", + "dev": true + }, + "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, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "dependencies": { + "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 + } + } + }, "import-local": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", @@ -9515,6 +12050,11 @@ "standard-as-callback": "^2.1.0" } }, + "ip": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", + "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==" + }, "ipaddr.js": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", @@ -9530,6 +12070,15 @@ "resolved": "https://registry.npmjs.org/is-base64/-/is-base64-1.1.0.tgz", "integrity": "sha512-Nlhg7Z2dVC4/PTvIFkgVVNvPHSO2eR/Yd0XzhGiXCXEvWnptXlXa/clQ8aePPiMuxEGcWfzWbGw2Fe3d+Y3v1g==" }, + "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, + "requires": { + "binary-extensions": "^2.0.0" + } + }, "is-core-module": { "version": "2.12.1", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", @@ -9538,6 +12087,12 @@ "has": "^1.0.3" } }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true + }, "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", @@ -9550,12 +12105,27 @@ "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", "dev": true }, + "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, + "requires": { + "is-extglob": "^2.1.1" + } + }, "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 }, + "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==", + "dev": true + }, "is-plain-object": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", @@ -10135,6 +12705,18 @@ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "dev": true }, + "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 + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, "json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", @@ -10200,6 +12782,11 @@ "safe-buffer": "^5.0.1" } }, + "kareem": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.5.1.tgz", + "integrity": "sha512-7jFxRVm+jD+rkq3kY0iZDJfsO2/t4BBPeEb2qKn2lR/9KhuksYk5hxzfRYWMPV8P/x2d0kHD306YyWLzjjH+uA==" + }, "kleur": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", @@ -10212,6 +12799,16 @@ "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", "dev": true }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, "lines-and-columns": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", @@ -10277,6 +12874,12 @@ "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", "dev": true }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, "lru_map": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz", @@ -10303,8 +12906,7 @@ "make-error": { "version": "1.3.6", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" }, "makeerror": { "version": "1.0.12", @@ -10320,6 +12922,12 @@ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==" }, + "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==", + "optional": true + }, "merge-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", @@ -10331,6 +12939,12 @@ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", "dev": true }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, "methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", @@ -10384,6 +12998,76 @@ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" }, + "mongodb": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-5.6.0.tgz", + "integrity": "sha512-z8qVs9NfobHJm6uzK56XBZF8XwM9H294iRnB7wNjF0SnY93si5HPziIJn+qqvUR5QOff/4L0gCD6SShdR/GtVQ==", + "requires": { + "bson": "^5.3.0", + "mongodb-connection-string-url": "^2.6.0", + "saslprep": "^1.0.3", + "socks": "^2.7.1" + } + }, + "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==", + "requires": { + "@types/whatwg-url": "^8.2.1", + "whatwg-url": "^11.0.0" + }, + "dependencies": { + "punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==" + }, + "tr46": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", + "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", + "requires": { + "punycode": "^2.1.1" + } + }, + "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==" + }, + "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==", + "requires": { + "tr46": "^3.0.0", + "webidl-conversions": "^7.0.0" + } + } + } + }, + "mongoose": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-7.3.1.tgz", + "integrity": "sha512-6289bmSIhvR8xMHsYe2/CuzN7wHK+2RHcK7idDdzniCPC5zix5JH0Hc4k3CmXlr/9zQ2250gUQiUWtvDB0vF1Q==", + "requires": { + "bson": "^5.3.0", + "kareem": "2.5.1", + "mongodb": "5.6.0", + "mpath": "0.9.0", + "mquery": "5.0.0", + "ms": "2.1.3", + "sift": "16.0.1" + }, + "dependencies": { + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + } + } + }, "morgan": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz", @@ -10423,6 +13107,19 @@ } } }, + "mpath": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.9.0.tgz", + "integrity": "sha512-ikJRQTk8hw5DEoFVxHG1Gn9T/xcjtdnOKIU1JTmGjZZlg9LST2mBLmcX3/ICIbgJydT2GOc15RnNy5mHmzfSew==" + }, + "mquery": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/mquery/-/mquery-5.0.0.tgz", + "integrity": "sha512-iQMncpmEK8R8ncT8HJGsGc9Dsp8xcgYMVSbs5jgnm1lFHTZqMJTUWTDx1LBO8+mK3tPNZWFLBghQEIOULSTHZg==", + "requires": { + "debug": "4.x" + } + }, "mri": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/mri/-/mri-1.1.4.tgz", @@ -10439,6 +13136,12 @@ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, + "natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", + "dev": true + }, "negotiator": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", @@ -10481,6 +13184,65 @@ "integrity": "sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ==", "dev": true }, + "nodemon": { + "version": "2.0.22", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.22.tgz", + "integrity": "sha512-B8YqaKMmyuCO7BowF1Z1/mkPqLk6cs/l63Ojtd6otKjMx47Dq1utxfRxcavH1I7VSaL8n5BUaoutadnsX3AAVQ==", + "dev": true, + "requires": { + "chokidar": "^3.5.2", + "debug": "^3.2.7", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.1.2", + "pstree.remy": "^1.1.8", + "semver": "^5.7.1", + "simple-update-notifier": "^1.0.7", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.5" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "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==", + "dev": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==", + "dev": true, + "requires": { + "abbrev": "1" + } + }, "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -10550,6 +13312,20 @@ "mimic-fn": "^2.1.0" } }, + "optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dev": true, + "requires": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + } + }, "p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -10589,6 +13365,15 @@ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" }, + "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, + "requires": { + "callsites": "^3.0.0" + } + }, "parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", @@ -10631,6 +13416,12 @@ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" }, + "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 + }, "picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", @@ -10793,6 +13584,12 @@ "find-up": "^4.0.0" } }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true + }, "pretty-format": { "version": "29.5.0", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.5.0.tgz", @@ -10905,6 +13702,12 @@ "ipaddr.js": "1.9.1" } }, + "pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", + "dev": true + }, "pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", @@ -10933,6 +13736,12 @@ "side-channel": "^1.0.4" } }, + "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 + }, "quick-format-unescaped": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz", @@ -10970,6 +13779,15 @@ "util-deprecate": "^1.0.1" } }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, "redis-commands": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/redis-commands/-/redis-commands-1.7.0.tgz", @@ -11025,11 +13843,35 @@ "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", "dev": true }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, "rfdc": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==" }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "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, + "requires": { + "queue-microtask": "^1.2.2" + } + }, "safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -11040,6 +13882,15 @@ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, + "saslprep": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz", + "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==", + "optional": true, + "requires": { + "sparse-bitfield": "^3.0.3" + } + }, "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", @@ -11129,12 +13980,34 @@ "object-inspect": "^1.9.0" } }, + "sift": { + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/sift/-/sift-16.0.1.tgz", + "integrity": "sha512-Wv6BjQ5zbhW7VFefWusVP33T/EM0vYikCaQ2qR8yULbsilAT8/wQaXvuQ3ptGLpoKx+lihJE3y2UTgKDyyNHZQ==" + }, "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 }, + "simple-update-notifier": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz", + "integrity": "sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==", + "dev": true, + "requires": { + "semver": "~7.0.0" + }, + "dependencies": { + "semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "dev": true + } + } + }, "sisteransi": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", @@ -11147,6 +14020,11 @@ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true }, + "smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==" + }, "smee-client": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/smee-client/-/smee-client-1.2.3.tgz", @@ -11174,6 +14052,15 @@ } } }, + "socks": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", + "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", + "requires": { + "ip": "^2.0.0", + "smart-buffer": "^4.2.0" + } + }, "sonic-boom": { "version": "2.8.0", "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-2.8.0.tgz", @@ -11197,6 +14084,15 @@ "source-map": "^0.6.0" } }, + "sparse-bitfield": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", + "integrity": "sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==", + "optional": true, + "requires": { + "memory-pager": "^1.0.2" + } + }, "split2": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", @@ -11357,6 +14253,12 @@ "minimatch": "^3.0.4" } }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, "tmpl": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", @@ -11383,6 +14285,15 @@ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" }, + "touch": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", + "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", + "dev": true, + "requires": { + "nopt": "~1.0.10" + } + }, "tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", @@ -11430,11 +14341,49 @@ } } }, + "ts-node": { + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "requires": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + } + }, "tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, + "tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + } + }, + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1" + } + }, "type-detect": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", @@ -11459,8 +14408,7 @@ "typescript": { "version": "4.9.5", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", - "dev": true + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==" }, "uglify-js": { "version": "3.17.4", @@ -11468,6 +14416,12 @@ "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", "optional": true }, + "undefsafe": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", + "dev": true + }, "universal-github-app-jwt": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/universal-github-app-jwt/-/universal-github-app-jwt-1.1.1.tgz", @@ -11503,6 +14457,23 @@ "integrity": "sha512-3cIC18In/t0X/yH793c00qqxcKD8jVCgNOPif/fGQkFpYMGecM9YAc+kaAKXuZsM2dE9I9wFI7KvAuNX22SGMQ==", "requires": {} }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + }, + "dependencies": { + "punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "dev": true + } + } + }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -11518,6 +14489,11 @@ "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" }, + "v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==" + }, "v8-to-istanbul": { "version": "9.1.0", "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz", @@ -11644,6 +14620,11 @@ "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true }, + "yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==" + }, "yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", diff --git a/secret-engine/package.json b/secret-engine/package.json index 4e3fe7b38..b038c9206 100644 --- a/secret-engine/package.json +++ b/secret-engine/package.json @@ -13,17 +13,24 @@ ], "scripts": { "build": "tsc", - "start": "npm run build && probot run ./lib/index.js", + "dev": "npm run build && probot run ./lib/index.js", + "start": "nodemon -e ts,yml --watch './**/*.ts' --exec npm run dev", "test": "jest" }, "dependencies": { - "probot": "^12.2.4" + "mongoose": "^7.3.1", + "probot": "^12.2.4", + "ts-node": "^10.9.1" }, "devDependencies": { "@types/jest": "^29.0.0", "@types/node": "^18.0.0", + "@typescript-eslint/eslint-plugin": "^5.61.0", + "@typescript-eslint/parser": "^5.61.0", + "eslint": "^8.44.0", "jest": "^29.0.0", "nock": "^13.0.5", + "nodemon": "^2.0.22", "smee-client": "^1.2.2", "ts-jest": "^29.0.0", "typescript": "^4.1.3" diff --git a/secret-engine/src/index.ts b/secret-engine/src/index.ts index 6a778f306..3704fcf8f 100644 --- a/secret-engine/src/index.ts +++ b/secret-engine/src/index.ts @@ -3,11 +3,9 @@ import { exec } from "child_process"; import { writeFile, readFile, rm, mkdir, } from "fs"; import { tmpdir } from "os"; import { join } from "path" - -// interface CommandResult { -// stdout: string; -// stderr: string; -// } +import mongoose from "mongoose"; +import GitRisks from "./models/gitRisks"; +import GitAppOrganizationInstallation from "./models/gitAppOrganizationInstallation"; type SecretMatch = { Description: string; @@ -31,17 +29,41 @@ type SecretMatch = { }; export = (app: Probot) => { - app.on("pull_request", async (context) => { - // create a check + // connect to DB + initDatabase() + + app.on("installation.created", async (context) => { + const { payload } = context; + // console.log("payload==>", payload.installation.repository_selection) + }) + + app.on("installation.deleted", async (context) => { + const { payload } = context; + const { installation, repositories } = payload; + if (installation.repository_selection == "all") { + await GitRisks.deleteMany({ installationId: installation.id }) + await GitAppOrganizationInstallation.deleteOne({ installationId: installation.id }) + } else { + for (const repository of repositories) { + await GitRisks.deleteMany({ repositoryId: repository.id }) + } + } }) app.on("push", async (context) => { - console.log("something was pushed") const { payload } = context; - const { commits, repository } = payload; + const { commits, repository, installation, } = payload; const [owner, repo] = repository.full_name.split('/'); - const fingerPrints: any = [] + const installationLinkToOrgExists = await GitAppOrganizationInstallation.findOne({ installationId: installation.id }).lean() + if (!installationLinkToOrgExists) { + return + } + + console.log("installation link does exist!") + + const findingsByFingerprint: { [key: string]: SecretMatch; } = {} + for (const commit of commits) { for (const filepath of [...commit.added, ...commit.modified]) { try { @@ -57,7 +79,13 @@ export = (app: Probot) => { const findings = await scanContentAndGetFindings(`\n${fileContent}`) // to count lines correctly for (const finding of findings) { - fingerPrints.push(`${commit.id}:${filepath}:${finding.RuleID}:${finding.StartLine}`) + const fingerPrint = `${commit.id}:${filepath}:${finding.RuleID}:${finding.StartLine}` + finding.Fingerprint = fingerPrint + finding.Commit = commit.id + finding.File = filepath + finding.Author = commit.author.name + finding.Email = commit.author.email + findingsByFingerprint[fingerPrint] = finding } } catch (error) { @@ -66,7 +94,19 @@ export = (app: Probot) => { } } - console.log("fingerPrints==>", fingerPrints) + // change to update + for (const key in findingsByFingerprint) { + await GitRisks.findOneAndUpdate({ fingerprint: findingsByFingerprint[key].Fingerprint }, + { + ...convertKeysToLowercase(findingsByFingerprint[key]), + installationId: installation.id, + organization: installationLinkToOrgExists.organizationId, + repositoryFullName: repository.full_name, + repositoryId: repository.id + }, { + upsert: true + }) + } }); }; @@ -149,3 +189,31 @@ function deleteTempFolder(folderPath: string): Promise { }); }); } + +const initDatabase = async () => { + try { + await mongoose.connect(process.env.MONGO_URL); + // allow empty strings to pass the required validator + mongoose.Schema.Types.String.checkRequired(v => typeof v === "string"); + + console.log("Database connection established"); + + } catch (err) { + console.log(`Unable to establish Database connection due to the error.\n${err}`); + } + + return mongoose.connection; +} + +function convertKeysToLowercase(obj: T): T { + const convertedObj = {} as T; + + for (const key in obj) { + if (Object.prototype.hasOwnProperty.call(obj, key)) { + const lowercaseKey = key.charAt(0).toLowerCase() + key.slice(1); + convertedObj[lowercaseKey] = obj[key]; + } + } + + return convertedObj; +} \ No newline at end of file diff --git a/secret-engine/src/models/gitAppOrganizationInstallation.ts b/secret-engine/src/models/gitAppOrganizationInstallation.ts new file mode 100644 index 000000000..e742c0cf1 --- /dev/null +++ b/secret-engine/src/models/gitAppOrganizationInstallation.ts @@ -0,0 +1,31 @@ +import { Schema, model } from "mongoose"; + +type Installation = { + installationId: string + organizationId: string + user: Schema.Types.ObjectId +}; + + +const gitAppOrganizationInstallation = new Schema({ + installationId: { + type: String, + required: true, + unique: true + }, + organizationId: { + type: String, + required: true, + unique: true + }, + user: { + type: Schema.Types.ObjectId, + ref: "User", + required: true, + } +}); + + +const GitAppOrganizationInstallation = model("git_app_organization_installation", gitAppOrganizationInstallation); + +export default GitAppOrganizationInstallation; diff --git a/secret-engine/src/models/gitRisks.ts b/secret-engine/src/models/gitRisks.ts new file mode 100644 index 000000000..a8a43e6b6 --- /dev/null +++ b/secret-engine/src/models/gitRisks.ts @@ -0,0 +1,147 @@ +import { Schema, model } from "mongoose"; +export const STATUS_RESOLVED_FALSE_POSITIVE = 'RESOLVED_FALSE_POSITIVE'; +export const STATUS_RESOLVED_REVOKED = 'RESOLVED_REVOKED'; +export const STATUS_RESOLVED_NOT_REVOKED = 'RESOLVED_NOT_REVOKED'; +export const STATUS_UNRESOLVED = 'UNRESOLVED'; + +export type GitRisks = { + id: string; + description: string; + startLine: string; + endLine: string; + startColumn: string; + endColumn: string; + match: string; + secret: string; + file: string; + symlinkFile: string; + commit: string; + entropy: string; + author: string; + email: string; + date: string; + message: string; + tags: string[]; + ruleID: string; + fingerprint: string; + + isFalsePositive: boolean; // New field for marking risks as false positives + isResolved: boolean; // New field for marking risks as resolved + riskOwner: string | null; // New field for setting a risk owner (nullable string) + installationId: string, + repositoryId: string, + repositoryLink: string + repositoryFullName: string + status: string + pusher: { + name: string, + email: string + }, + organization: Schema.Types.ObjectId, +} + +const gitRisks = new Schema({ + id: { + type: String, + }, + description: { + type: String, + }, + startLine: { + type: String, + }, + endLine: { + type: String, + }, + startColumn: { + type: String, + }, + endColumn: { + type: String, + }, + file: { + type: String, + }, + symlinkFile: { + type: String, + }, + commit: { + type: String, + }, + entropy: { + type: String, + }, + author: { + type: String, + }, + email: { + type: String, + }, + date: { + type: String, + }, + message: { + type: String, + }, + tags: { + type: [String], + }, + ruleID: { + type: String, + }, + fingerprint: { + type: String, + unique: true + }, + isFalsePositive: { + type: Boolean, + default: false + }, + isResolved: { + type: Boolean, + default: false + }, + riskOwner: { + type: String, + default: null + }, + installationId: { + type: String, + require: true + }, + repositoryId: { + type: String + }, + repositoryLink: { + type: String + }, + repositoryFullName: { + type: String + }, + pusher: { + name: { + type: String + }, + email: { + type: String + }, + }, + organization: { + type: Schema.Types.ObjectId, + ref: "Organization", + }, + status: { + type: String, + enum: [ + STATUS_RESOLVED_FALSE_POSITIVE, + STATUS_RESOLVED_REVOKED, + STATUS_RESOLVED_NOT_REVOKED, + STATUS_UNRESOLVED + ], + default: STATUS_UNRESOLVED + } +}, { timestamps: true }); + +const GitRisks = model("GitRisks", gitRisks); + +export default GitRisks; diff --git a/secret-engine/tsconfig.json b/secret-engine/tsconfig.json index 8f4e51379..bb2122a1c 100644 --- a/secret-engine/tsconfig.json +++ b/secret-engine/tsconfig.json @@ -25,7 +25,7 @@ // "downlevelIteration": true, /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */ // "isolatedModules": true, /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */ /* Strict Type-Checking Options */ - "strict": true /* Enable all strict type-checking options. */, + "strict": false /* Enable all strict type-checking options. */, // "noImplicitAny": true, /* Raise error on expressions and declarations with an implied 'any' type. */ // "strictNullChecks": true, /* Enable strict null checks. */ // "strictFunctionTypes": true, /* Enable strict checking of function types. */ From a63d179a0d83bafe03b715398052b61127b473e5 Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Tue, 4 Jul 2023 22:06:29 -0400 Subject: [PATCH 005/132] add email notifications for risks --- secret-engine/.dockerignore | 1 + secret-engine/app.yml | 30 ++--- secret-engine/package-lock.json | 15 +++ secret-engine/package.json | 4 +- secret-engine/src/helper/nodemailer.ts | 45 +++++++ secret-engine/src/index.ts | 59 ++++++++- secret-engine/src/models/membershipOrg.ts | 56 +++++++++ secret-engine/src/models/user.ts | 116 ++++++++++++++++++ secret-engine/src/service/smtp.ts | 77 ++++++++++++ .../templates/secretLeakIncident.handlebars | 19 +++ .../test/fixtures/issues.opened.json | 18 --- secret-engine/test/fixtures/mock-cert.pem | 27 ---- secret-engine/test/index.test.ts | 74 ----------- secret-engine/tsconfig.json | 7 +- 14 files changed, 406 insertions(+), 142 deletions(-) create mode 100644 secret-engine/src/helper/nodemailer.ts create mode 100644 secret-engine/src/models/membershipOrg.ts create mode 100644 secret-engine/src/models/user.ts create mode 100644 secret-engine/src/service/smtp.ts create mode 100644 secret-engine/src/templates/secretLeakIncident.handlebars delete mode 100644 secret-engine/test/fixtures/issues.opened.json delete mode 100644 secret-engine/test/fixtures/mock-cert.pem delete mode 100644 secret-engine/test/index.test.ts diff --git a/secret-engine/.dockerignore b/secret-engine/.dockerignore index c961acb50..88fe8b202 100644 --- a/secret-engine/.dockerignore +++ b/secret-engine/.dockerignore @@ -8,5 +8,6 @@ **/.env **/.editorconfig **/dist +**/lib **/*.pem Dockerfile diff --git a/secret-engine/app.yml b/secret-engine/app.yml index baea2801a..8121db9fa 100644 --- a/secret-engine/app.yml +++ b/secret-engine/app.yml @@ -13,7 +13,7 @@ # The list of events the GitHub App subscribes to. # Uncomment the event names below to enable them. default_events: - # - check_run + - check_run # - check_suite # - commit_comment # - create @@ -23,20 +23,20 @@ default_events: # - fork # - gollum # - issue_comment - - issues + # - issues - push -# - label -# - milestone -# - member -# - membership -# - org_block -# - organization -# - page_build -# - project -# - project_card -# - project_column -# - public -# - pull_request + # - label + # - milestone + # - member + # - membership + # - org_block + # - organization + # - page_build + # - project + # - project_card + # - project_column + # - public + - pull_request # - pull_request_review # - pull_request_review_comment # - release @@ -128,7 +128,7 @@ name: Infisical Radar # The homepage of your GitHub App. url: https://infisical.com/radar # A description of the GitHub App. -description: A description of my awesome app +description: Scan your commits for leaked secrets # Set to true when your GitHub App is available to the public or false when it is only accessible to the owner of the app. # Default: true # public: false diff --git a/secret-engine/package-lock.json b/secret-engine/package-lock.json index 88d013a6d..658dbed54 100644 --- a/secret-engine/package-lock.json +++ b/secret-engine/package-lock.json @@ -9,7 +9,9 @@ "version": "1.0.0", "license": "ISC", "dependencies": { + "handlebars": "^4.7.7", "mongoose": "^7.3.1", + "nodemailer": "^6.9.3", "probot": "^12.2.4", "ts-node": "^10.9.1" }, @@ -6301,6 +6303,14 @@ "integrity": "sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ==", "dev": true }, + "node_modules/nodemailer": { + "version": "6.9.3", + "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.9.3.tgz", + "integrity": "sha512-fy9v3NgTzBngrMFkDsKEj0r02U7jm6XfC3b52eoNV+GCrGj+s8pt5OqhiJdWKuw51zCTdiNR/IUD1z33LIIGpg==", + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/nodemon": { "version": "2.0.22", "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.22.tgz", @@ -13184,6 +13194,11 @@ "integrity": "sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ==", "dev": true }, + "nodemailer": { + "version": "6.9.3", + "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.9.3.tgz", + "integrity": "sha512-fy9v3NgTzBngrMFkDsKEj0r02U7jm6XfC3b52eoNV+GCrGj+s8pt5OqhiJdWKuw51zCTdiNR/IUD1z33LIIGpg==" + }, "nodemon": { "version": "2.0.22", "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.22.tgz", diff --git a/secret-engine/package.json b/secret-engine/package.json index b038c9206..0a8f744e6 100644 --- a/secret-engine/package.json +++ b/secret-engine/package.json @@ -12,13 +12,15 @@ "probot-app" ], "scripts": { - "build": "tsc", + "build": "tsc && cp -R ./src/templates ./lib", "dev": "npm run build && probot run ./lib/index.js", "start": "nodemon -e ts,yml --watch './**/*.ts' --exec npm run dev", "test": "jest" }, "dependencies": { + "handlebars": "^4.7.7", "mongoose": "^7.3.1", + "nodemailer": "^6.9.3", "probot": "^12.2.4", "ts-node": "^10.9.1" }, diff --git a/secret-engine/src/helper/nodemailer.ts b/secret-engine/src/helper/nodemailer.ts new file mode 100644 index 000000000..3aaa2b28a --- /dev/null +++ b/secret-engine/src/helper/nodemailer.ts @@ -0,0 +1,45 @@ +import fs from "fs"; +import path from "path"; +import handlebars from "handlebars"; +import nodemailer from "nodemailer"; + +let smtpTransporter: nodemailer.Transporter; + +/** + * @param {Object} obj + * @param {String} obj.template - email template to use from /templates folder (e.g. testEmail.handlebars) + * @param {String[]} obj.subjectLine - email subject line + * @param {String[]} obj.recipients - email addresses of people to send email to + * @param {Object} obj.substitutions - object containing template substitutions + */ +export const sendMail = async ({ + template, + subjectLine, + recipients, + substitutions, +}: { + template: string; + subjectLine: string; + recipients: string[]; + substitutions: any; +}) => { + const smtpConfigured = process.env.SMTP_HOST == "" || process.env.SMTP_HOST == undefined ? false : true + if (smtpConfigured) { + const html = fs.readFileSync( + path.resolve(__dirname, "../templates/" + template), + "utf8" + ); + const temp = handlebars.compile(html); + const htmlToSend = temp(substitutions); + await smtpTransporter.sendMail({ + from: `"${process.env.SMTP_FROM_NAME}" <${process.env.SMTP_FROM_ADDRESS}>`, + to: recipients.join(", "), + subject: subjectLine, + html: htmlToSend, + }); + } +}; + +export const setTransporter = (transporter: nodemailer.Transporter) => { + smtpTransporter = transporter; +}; \ No newline at end of file diff --git a/secret-engine/src/index.ts b/secret-engine/src/index.ts index 3704fcf8f..067efcfac 100644 --- a/secret-engine/src/index.ts +++ b/secret-engine/src/index.ts @@ -6,6 +6,10 @@ import { join } from "path" import mongoose from "mongoose"; import GitRisks from "./models/gitRisks"; import GitAppOrganizationInstallation from "./models/gitAppOrganizationInstallation"; +import { sendMail, setTransporter } from "./helper/nodemailer"; +import { initSmtp } from "./service/smtp"; +import MembershipOrg, { ADMIN, OWNER } from "./models/membershipOrg"; +import User from "./models/user"; type SecretMatch = { Description: string; @@ -28,10 +32,12 @@ type SecretMatch = { Fingerprint: string; }; -export = (app: Probot) => { +export = async (app: Probot) => { // connect to DB initDatabase() + setTransporter(await initSmtp()); + app.on("installation.created", async (context) => { const { payload } = context; // console.log("payload==>", payload.installation.repository_selection) @@ -52,7 +58,7 @@ export = (app: Probot) => { app.on("push", async (context) => { const { payload } = context; - const { commits, repository, installation, } = payload; + const { commits, repository, installation, pusher } = payload; const [owner, repo] = repository.full_name.split('/'); const installationLinkToOrgExists = await GitAppOrganizationInstallation.findOne({ installationId: installation.id }).lean() @@ -60,8 +66,6 @@ export = (app: Probot) => { return } - console.log("installation link does exist!") - const findingsByFingerprint: { [key: string]: SecretMatch; } = {} for (const commit of commits) { @@ -107,6 +111,53 @@ export = (app: Probot) => { upsert: true }) } + // get emails of admins + const adminsOfWork = await MembershipOrg.find({ + organization: installationLinkToOrgExists.organizationId, + $or: [ + { role: OWNER }, + { role: ADMIN } + ] + }).lean() + + const userEmails = await User.find({ + _id: { + $in: [adminsOfWork.map(orgMembership => orgMembership.user)] + } + }).select("email").lean() + + const adminOrOwnerEmails = userEmails.map(userObject => userObject.email) + + await sendMail({ + template: "secretLeakIncident.handlebars", + subjectLine: `Incident alert: leaked secrets found in Github repository ${repository.full_name}`, + recipients: [pusher.email, ...adminOrOwnerEmails], + substitutions: { + numberOfSecrets: Object.keys(findingsByFingerprint).length, + pusher_email: pusher.email, + pusher_name: pusher.name + } + }); + }); + + app.on(['pull_request.opened', 'pull_request.synchronize'], async (context) => { + const { payload } = context; + const { pull_request } = payload + if (false) { + const check = { + owner: pull_request.head.repo.owner.login, + repo: pull_request.head.repo.name, + name: 'Secret Detection', + head_sha: pull_request.head.sha, + status: 'completed', + conclusion: 'failure', + output: { + title: `X Secrets detected`, + summary: 'We detected potential leaked secret(s) in your pull request.', + }, + }; + return context.octokit.checks.create(check); + } }); }; diff --git a/secret-engine/src/models/membershipOrg.ts b/secret-engine/src/models/membershipOrg.ts new file mode 100644 index 000000000..3af683631 --- /dev/null +++ b/secret-engine/src/models/membershipOrg.ts @@ -0,0 +1,56 @@ +import { Document, Schema, Types, model } from "mongoose"; +// membership roles +export const OWNER = "owner"; +export const ADMIN = "admin"; +export const MEMBER = "member"; + +// membership statuses +export const INVITED = "invited"; + +// -- organization +export const ACCEPTED = "accepted"; + +export interface IMembershipOrg extends Document { + _id: Types.ObjectId; + user: Types.ObjectId; + inviteEmail: string; + organization: Types.ObjectId; + role: "owner" | "admin" | "member"; + status: "invited" | "accepted"; +} + +const membershipOrgSchema = new Schema( + { + user: { + type: Schema.Types.ObjectId, + ref: "User", + }, + inviteEmail: { + type: String, + }, + organization: { + type: Schema.Types.ObjectId, + ref: "Organization", + }, + role: { + type: String, + enum: [OWNER, ADMIN, MEMBER], + required: true, + }, + status: { + type: String, + enum: [INVITED, ACCEPTED], + required: true, + }, + }, + { + timestamps: true, + } +); + +const MembershipOrg = model( + "MembershipOrg", + membershipOrgSchema +); + +export default MembershipOrg; diff --git a/secret-engine/src/models/user.ts b/secret-engine/src/models/user.ts new file mode 100644 index 000000000..0d49b4cd9 --- /dev/null +++ b/secret-engine/src/models/user.ts @@ -0,0 +1,116 @@ +import { Document, Schema, Types, model } from "mongoose"; + +export enum AuthProvider { + GOOGLE = "google", +} + +export interface IUser extends Document { + _id: Types.ObjectId; + authId?: string; + authProvider?: AuthProvider; + email: string; + firstName?: string; + lastName?: string; + encryptionVersion: number; + protectedKey: string; + protectedKeyIV: string; + protectedKeyTag: string; + publicKey?: string; + encryptedPrivateKey?: string; + iv?: string; + tag?: string; + salt?: string; + verifier?: string; + isMfaEnabled: boolean; + mfaMethods: boolean; + devices: { + ip: string; + userAgent: string; + }[]; +} + +const userSchema = new Schema( + { + authId: { + type: String, + }, + authProvider: { + type: String, + enum: AuthProvider, + }, + email: { + type: String, + required: true, + unique: true, + }, + firstName: { + type: String, + }, + lastName: { + type: String, + }, + encryptionVersion: { + type: Number, + select: false, + default: 1, // to resolve backward-compatibility issues + }, + protectedKey: { // introduced as part of encryption version 2 + type: String, + select: false, + }, + protectedKeyIV: { // introduced as part of encryption version 2 + type: String, + select: false, + }, + protectedKeyTag: { // introduced as part of encryption version 2 + type: String, + select: false, + }, + publicKey: { + type: String, + select: false, + }, + encryptedPrivateKey: { + type: String, + select: false, + }, + iv: { // iv of [encryptedPrivateKey] + type: String, + select: false, + }, + tag: { // tag of [encryptedPrivateKey] + type: String, + select: false, + }, + salt: { + type: String, + select: false, + }, + verifier: { + type: String, + select: false, + }, + isMfaEnabled: { + type: Boolean, + default: false, + }, + mfaMethods: [{ + type: String, + }], + devices: { + type: [{ + ip: String, + userAgent: String, + }], + default: [], + select: false, + }, + }, + { + timestamps: true, + } +); + +const User = model("User", userSchema); + +export default User; diff --git a/secret-engine/src/service/smtp.ts b/secret-engine/src/service/smtp.ts new file mode 100644 index 000000000..bd7ae915f --- /dev/null +++ b/secret-engine/src/service/smtp.ts @@ -0,0 +1,77 @@ +import nodemailer from "nodemailer"; +import SMTPConnection from "nodemailer/lib/smtp-connection"; + +export const SMTP_HOST_SENDGRID = "smtp.sendgrid.net"; +export const SMTP_HOST_MAILGUN = "smtp.mailgun.org"; +export const SMTP_HOST_SOCKETLABS = "smtp.socketlabs.com"; +export const SMTP_HOST_ZOHOMAIL = "smtp.zoho.com"; +export const SMTP_HOST_GMAIL = "smtp.gmail.com"; + +export const initSmtp = async () => { + const mailOpts: SMTPConnection.Options = { + host: process.env.SMTP_HOST, + port: process.env.SMTP_PORT, + }; + + if ((process.env.SMTP_USERNAME) && (process.env.SMTP_PASSWORD)) { + mailOpts.auth = { + user: process.env.SMTP_USERNAME, + pass: process.env.SMTP_PASSWORD, + }; + } + + if ((process.env.SMTP_SECURE) ? (process.env.SMTP_SECURE) : false) { + switch (process.env.SMTP_HOST) { + case SMTP_HOST_SENDGRID: + mailOpts.requireTLS = true; + break; + case SMTP_HOST_MAILGUN: + mailOpts.requireTLS = true; + mailOpts.tls = { + ciphers: "TLSv1.2", + } + break; + case SMTP_HOST_SOCKETLABS: + mailOpts.requireTLS = true; + mailOpts.tls = { + ciphers: "TLSv1.2", + } + break; + case SMTP_HOST_ZOHOMAIL: + mailOpts.requireTLS = true; + mailOpts.tls = { + ciphers: "TLSv1.2", + } + break; + case SMTP_HOST_GMAIL: + mailOpts.requireTLS = true; + mailOpts.tls = { + ciphers: "TLSv1.2", + } + break; + default: + if ((process.env.SMTP_HOST).includes("amazonaws.com")) { + mailOpts.tls = { + ciphers: "TLSv1.2", + } + } else { + mailOpts.secure = true; + } + break; + } + } + + const transporter = nodemailer.createTransport(mailOpts); + transporter + .verify() + .then((err) => { + console.log("SMTP - Successfully connected") + }) + .catch(async (err) => { + console.log( + `SMTP - Failed to connect to ${process.env.SMTP_HOST}:${process.env.SMTP_PORT} \n\t${err}` + ); + }); + + return transporter; +}; diff --git a/secret-engine/src/templates/secretLeakIncident.handlebars b/secret-engine/src/templates/secretLeakIncident.handlebars new file mode 100644 index 000000000..10a66fa51 --- /dev/null +++ b/secret-engine/src/templates/secretLeakIncident.handlebars @@ -0,0 +1,19 @@ + + + + + + + Incident alert: secret leaked + + + +

    Infisical has uncovered {{numberOfSecrets}} secret(s) from your recent push

    +

    View leaked secrets

    +

    One or more secret leaks have been detected in a recent commit pushed by {{pusher_name}} ({{pusher_email}}). If + the secrets are test secrets, please mark them as false positives in the Infisical dashboard. + Otherwise, please rotate the secrets immediately.

    + + + \ No newline at end of file diff --git a/secret-engine/test/fixtures/issues.opened.json b/secret-engine/test/fixtures/issues.opened.json deleted file mode 100644 index e570cd41b..000000000 --- a/secret-engine/test/fixtures/issues.opened.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "action": "opened", - "issue": { - "number": 1, - "user": { - "login": "hiimbex" - } - }, - "repository": { - "name": "testing-things", - "owner": { - "login": "hiimbex" - } - }, - "installation": { - "id": 2 - } -} diff --git a/secret-engine/test/fixtures/mock-cert.pem b/secret-engine/test/fixtures/mock-cert.pem deleted file mode 100644 index f2f271c30..000000000 --- a/secret-engine/test/fixtures/mock-cert.pem +++ /dev/null @@ -1,27 +0,0 @@ ------BEGIN RSA PRIVATE KEY----- -MIIEowIBAAKCAQEAli7V49NdZe+XYC1pLaHM0te8kiDmZBJ1u2HJHN8GdbROB6NO -VpC3xK7NxQn6xpvZ9ux20NvcDvGle+DOptZztBH+np6h2jZQ1/kD1yG1eQvVH4th -/9oqHuIjmIfO8lIe4Hyd5Fw5xHkGqVETTGR+0c7kdZIlHmkOregUGtMYZRUi4YG+ -q0w+uFemiHpGKXbeCIAvkq7aIkisEzvPWfSyYdA6WJHpxFk7tD7D8VkzABLVRHCq -AuyqPG39BhGZcGLXx5rGK56kDBJkyTR1t3DkHpwX+JKNG5UYNwOG4LcQj1fteeta -TdkYUMjIyWbanlMYyC+dq7B5fe7el99jXQ1gXwIDAQABAoIBADKfiPOpzKLOtzzx -MbHzB0LO+75aHq7+1faayJrVxqyoYWELuB1P3NIMhknzyjdmU3t7S7WtVqkm5Twz -lBUC1q+NHUHEgRQ4GNokExpSP4SU63sdlaQTmv0cBxmkNarS6ZuMBgDy4XoLvaYX -MSUf/uukDLhg0ehFS3BteVFtdJyllhDdTenF1Nb1rAeN4egt8XLsE5NQDr1szFEG -xH5lb+8EDtzgsGpeIddWR64xP0lDIKSZWst/toYKWiwjaY9uZCfAhvYQ1RsO7L/t -sERmpYgh+rAZUh/Lr98EI8BPSPhzFcSHmtqzzejvC5zrZPHcUimz0CGA3YBiLoJX -V1OrxmECgYEAxkd8gpmVP+LEWB3lqpSvJaXcGkbzcDb9m0OPzHUAJDZtiIIf0UmO -nvL68/mzbCHSj+yFjZeG1rsrAVrOzrfDCuXjAv+JkEtEx0DIevU1u60lGnevOeky -r8Be7pmymFB9/gzQAd5ezIlTv/COgoO986a3h1yfhzrrzbqSiivw308CgYEAwecI -aZZwqH3GifR+0+Z1B48cezA5tC8LZt5yObGzUfxKTWy30d7lxe9N59t0KUVt/QL5 -qVkd7mqGzsUMyxUN2U2HVnFTWfUFMhkn/OnCnayhILs8UlCTD2Xxoy1KbQH/9FIr -xf0pbMNJLXeGfyRt/8H+BzSZKBw9opJBWE4gqfECgYBp9FdvvryHuBkt8UQCRJPX -rWsRy6pY47nf11mnazpZH5Cmqspv3zvMapF6AIxFk0leyYiQolFWvAv+HFV5F6+t -Si1mM8GCDwbA5zh6pEBDewHhw+UqMBh63HSeUhmi1RiOwrAA36CO8i+D2Pt+eQHv -ir52IiPJcs4BUNrv5Q1BdwKBgBHgVNw3LGe8QMOTMOYkRwHNZdjNl2RPOgPf2jQL -d/bFBayhq0jD/fcDmvEXQFxVtFAxKAc+2g2S8J67d/R5Gm/AQAvuIrsWZcY6n38n -pfOXaLt1x5fnKcevpFlg4Y2vM4O416RHNLx8PJDehh3Oo/2CSwMrDDuwbtZAGZok -icphAoGBAI74Tisfn+aeCZMrO8KxaWS5r2CD1KVzddEMRKlJvSKTY+dOCtJ+XKj1 -OsZdcDvDC5GtgcywHsYeOWHldgDWY1S8Z/PUo4eK9qBXYBXp3JEZQ1dqzFdz+Txi -rBn2WsFLsxV9j2/ugm0PqWVBcU2bPUCwvaRu3SOms2teaLwGCkhr ------END RSA PRIVATE KEY----- diff --git a/secret-engine/test/index.test.ts b/secret-engine/test/index.test.ts deleted file mode 100644 index d3a6e556e..000000000 --- a/secret-engine/test/index.test.ts +++ /dev/null @@ -1,74 +0,0 @@ -// You can import your modules -// import index from '../src/index' - -import nock from "nock"; -// Requiring our app implementation -import myProbotApp from "../src"; -import { Probot, ProbotOctokit } from "probot"; -// Requiring our fixtures -import payload from "./fixtures/issues.opened.json"; -const issueCreatedBody = { body: "Thanks for opening this issue!" }; -const fs = require("fs"); -const path = require("path"); - -const privateKey = fs.readFileSync( - path.join(__dirname, "fixtures/mock-cert.pem"), - "utf-8" -); - -describe("My Probot app", () => { - let probot: any; - - beforeEach(() => { - nock.disableNetConnect(); - probot = new Probot({ - appId: 123, - privateKey, - // disable request throttling and retries for testing - Octokit: ProbotOctokit.defaults({ - retry: { enabled: false }, - throttle: { enabled: false }, - }), - }); - // Load our app into probot - probot.load(myProbotApp); - }); - - test("creates a comment when an issue is opened", async () => { - const mock = nock("https://api.github.com") - // Test that we correctly return a test token - .post("/app/installations/2/access_tokens") - .reply(200, { - token: "test", - permissions: { - issues: "write", - }, - }) - - // Test that a comment is posted - .post("/repos/hiimbex/testing-things/issues/1/comments", (body: any) => { - expect(body).toMatchObject(issueCreatedBody); - return true; - }) - .reply(200); - - // Receive a webhook event - await probot.receive({ name: "issues", payload }); - - expect(mock.pendingMocks()).toStrictEqual([]); - }); - - afterEach(() => { - nock.cleanAll(); - nock.enableNetConnect(); - }); -}); - -// For more information about testing with Jest see: -// https://facebook.github.io/jest/ - -// For more information about using TypeScript in your tests, Jest recommends: -// https://github.com/kulshekhar/ts-jest - -// For more information about testing with Nock see: -// https://github.com/nock/nock diff --git a/secret-engine/tsconfig.json b/secret-engine/tsconfig.json index bb2122a1c..1c77d2a21 100644 --- a/secret-engine/tsconfig.json +++ b/secret-engine/tsconfig.json @@ -50,7 +50,7 @@ // "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */ // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ /* Source Map Options */ - // "sourceRoot": "", /* Specify the location where debugger should locate TypeScript files instead of source locations. */ + "sourceRoot": "src", /* Specify the location where debugger should locate TypeScript files instead of source locations. */ // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ // "inlineSourceMap": true, /* Emit a single file with source maps instead of having a separate file. */ // "inlineSources": true, /* Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set. */ @@ -64,7 +64,8 @@ "skipLibCheck": true }, "include": [ - "src/" + "src/**/*", + "src/templates/**/*" ], - "compileOnSave": false + // "compileOnSave": false } \ No newline at end of file From 2f1bd9ca611d63914a53653e6deefd84c3366a6c Mon Sep 17 00:00:00 2001 From: Afrie Irham Date: Wed, 5 Jul 2023 18:32:03 +0800 Subject: [PATCH 006/132] fix: enable user to press Enter in signup flow --- frontend/src/components/signup/CodeInputStep.tsx | 1 + frontend/src/components/signup/EnterEmailStep.tsx | 1 + frontend/src/components/signup/UserInfoStep.tsx | 2 +- 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/frontend/src/components/signup/CodeInputStep.tsx b/frontend/src/components/signup/CodeInputStep.tsx index dd765c1fc..7f6c75871 100644 --- a/frontend/src/components/signup/CodeInputStep.tsx +++ b/frontend/src/components/signup/CodeInputStep.tsx @@ -114,6 +114,7 @@ export default function CodeInputStep({
    @@ -301,6 +300,7 @@ export default function UserInfoStep({
    -
    + } From 93e0232c21000f7ba912caf99c848e7f1fb66367 Mon Sep 17 00:00:00 2001 From: Afrie Irham Date: Wed, 5 Jul 2023 19:02:48 +0800 Subject: [PATCH 008/132] fix: allow user to press Enter in forgot password page --- frontend/src/pages/verify-email.tsx | 31 ++++++++++++++++------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/frontend/src/pages/verify-email.tsx b/frontend/src/pages/verify-email.tsx index 33640dbc1..605c71da8 100644 --- a/frontend/src/pages/verify-email.tsx +++ b/frontend/src/pages/verify-email.tsx @@ -1,4 +1,4 @@ -import { useState } from "react"; +import { FormEvent, useState } from "react"; import Head from "next/head"; import Image from "next/image"; import Link from "next/link"; @@ -12,6 +12,7 @@ import { useFetchServerStatus } from "@app/hooks/api/serverDetails"; import SendEmailOnPasswordReset from "./api/auth/SendEmailOnPasswordReset"; export default function VerifyEmail() { + const [loading, setLoading] = useState(false); const [email, setEmail] = useState(""); const [step, setStep] = useState(1); const { data: serverDetails } = useFetchServerStatus(); @@ -27,6 +28,18 @@ export default function VerifyEmail() { } }; + const onSubmit = (e: FormEvent) => { + e.preventDefault(); + setLoading(true); + + if (serverDetails?.emailConfigured) { + sendVerificationEmail(); + } else { + handlePopUpOpen("setUpEmail"); + setLoading(false); + } + }; + return (
    @@ -45,7 +58,7 @@ export default function VerifyEmail() {
    {step === 1 && ( -
    +

    Forgot your password?

    @@ -67,20 +80,10 @@ export default function VerifyEmail() {
    -
    -
    + )} {step === 2 && (
    From 27a110a93a32395b259ca115e10f7dc41d6211b4 Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Wed, 5 Jul 2023 15:22:29 -0400 Subject: [PATCH 009/132] build secret scanning --- .github/workflows/build-staging-img.yml | 46 +++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/.github/workflows/build-staging-img.yml b/.github/workflows/build-staging-img.yml index 0e50d0906..872671577 100644 --- a/.github/workflows/build-staging-img.yml +++ b/.github/workflows/build-staging-img.yml @@ -105,6 +105,52 @@ jobs: platforms: linux/amd64,linux/arm64 build-args: | POSTHOG_API_KEY=${{ secrets.PUBLIC_POSTHOG_API_KEY }} + + secret-scanning-git-app: + name: Build secret scanning git app + runs-on: ubuntu-latest + steps: + - name: ☁️ Checkout source + uses: actions/checkout@v3 + - name: Save commit hashes for tag + id: commit + uses: pr-mpt/actions-commit-hash@v2 + - name: 🔧 Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + - name: 🐋 Login to Docker Hub + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Set up Depot CLI + uses: depot/setup-action@v1 + # - name: 📦 Build frontend and export to Docker + # uses: depot/build-push-action@v1 + # with: + # load: true + # token: ${{ secrets.DEPOT_PROJECT_TOKEN }} + # project: 64mmf0n610 + # context: frontend + # tags: infisical/staging_deployment_secret-scanning-git-app:test + # - name: ⏻ Spawn frontend container + # run: | + # docker run -d --rm --name secret-scanning-git-app infisical/staging_deployment_frontend:test + # - name: ⏻ Shut down frontend container + # run: | + # docker stop secret-scanning-git-app + - name: 🏗️ Build secret scanning git app and push + uses: depot/build-push-action@v1 + with: + project: 64mmf0n610 + push: true + token: ${{ secrets.DEPOT_PROJECT_TOKEN }} + context: secret-engine + tags: | + infisical/staging_deployment_secret-scanning-git-app:${{ steps.commit.outputs.short }} + infisical/staging_deployment_secret-scanning-git-app:latest + platforms: linux/amd64,linux/arm64 + build-args: | + POSTHOG_API_KEY=${{ secrets.PUBLIC_POSTHOG_API_KEY }} gamma-deployment: name: Deploy to gamma runs-on: ubuntu-latest From f389aa07ebfa2e2b4c564149675d39e9b7e25f9f Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Wed, 5 Jul 2023 15:39:44 -0400 Subject: [PATCH 010/132] update docker file for prod build --- secret-engine/Dockerfile | 9 ++++++++- secret-engine/package.json | 3 ++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/secret-engine/Dockerfile b/secret-engine/Dockerfile index c1cd23e10..32189a70b 100644 --- a/secret-engine/Dockerfile +++ b/secret-engine/Dockerfile @@ -5,4 +5,11 @@ RUN npm ci --production RUN npm cache clean --force ENV NODE_ENV="production" COPY . . -CMD [ "npm", "start" ] + +RUN apt-get update && apt-get install -y bash curl && curl -1sLf \ + 'https://dl.cloudsmith.io/public/infisical/infisical-cli/setup.deb.sh' | bash \ + && apt-get update && apt-get install -y infisical=0.8.1 + +RUN npm run build + +CMD [ "npm", "run", "start:prod" ] diff --git a/secret-engine/package.json b/secret-engine/package.json index 0a8f744e6..c9ed32570 100644 --- a/secret-engine/package.json +++ b/secret-engine/package.json @@ -14,7 +14,8 @@ "scripts": { "build": "tsc && cp -R ./src/templates ./lib", "dev": "npm run build && probot run ./lib/index.js", - "start": "nodemon -e ts,yml --watch './**/*.ts' --exec npm run dev", + "start:dev": "nodemon -e ts,yml --watch './**/*.ts' --exec npm run dev", + "start:prod": "probot run ./lib/index.js", "test": "jest" }, "dependencies": { From 0772510e47ef7132047d7d9c28d22319016392e6 Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Wed, 5 Jul 2023 15:52:43 -0400 Subject: [PATCH 011/132] update gha for git app gamma deploy --- .github/workflows/build-staging-img.yml | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/.github/workflows/build-staging-img.yml b/.github/workflows/build-staging-img.yml index 872671577..f61badbb0 100644 --- a/.github/workflows/build-staging-img.yml +++ b/.github/workflows/build-staging-img.yml @@ -124,20 +124,6 @@ jobs: password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Set up Depot CLI uses: depot/setup-action@v1 - # - name: 📦 Build frontend and export to Docker - # uses: depot/build-push-action@v1 - # with: - # load: true - # token: ${{ secrets.DEPOT_PROJECT_TOKEN }} - # project: 64mmf0n610 - # context: frontend - # tags: infisical/staging_deployment_secret-scanning-git-app:test - # - name: ⏻ Spawn frontend container - # run: | - # docker run -d --rm --name secret-scanning-git-app infisical/staging_deployment_frontend:test - # - name: ⏻ Shut down frontend container - # run: | - # docker stop secret-scanning-git-app - name: 🏗️ Build secret scanning git app and push uses: depot/build-push-action@v1 with: @@ -149,8 +135,6 @@ jobs: infisical/staging_deployment_secret-scanning-git-app:${{ steps.commit.outputs.short }} infisical/staging_deployment_secret-scanning-git-app:latest platforms: linux/amd64,linux/arm64 - build-args: | - POSTHOG_API_KEY=${{ secrets.PUBLIC_POSTHOG_API_KEY }} gamma-deployment: name: Deploy to gamma runs-on: ubuntu-latest From 3cbc9c1b5c3b5075b2c7388014bcfd1cfaf33728 Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Wed, 5 Jul 2023 17:54:29 -0400 Subject: [PATCH 012/132] update helm chart to include git app --- docker-compose.yml | 14 ++++ helm-charts/infisical/templates/_helpers.tpl | 28 ++++++++ helm-charts/infisical/templates/ingress.yaml | 7 ++ .../secret-scanning-git-app-deployment.yaml | 67 +++++++++++++++++++ helm-charts/infisical/values.yaml | 52 ++++++++++++++ nginx/default.conf | 14 ++++ secret-engine/Dockerfile.dev | 2 +- secret-engine/src/index.ts | 29 +++++--- 8 files changed, 204 insertions(+), 9 deletions(-) create mode 100644 helm-charts/infisical/templates/secret-scanning-git-app-deployment.yaml diff --git a/docker-compose.yml b/docker-compose.yml index 16f0bd128..bc1a24dd8 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -41,6 +41,20 @@ services: networks: - infisical + secret-scanning-git-app: + container_name: infisical-secret-scanning-git-app + restart: unless-stopped + depends_on: + - backend + - frontend + - mongo + ports: + - "3000:3001" + image: infisical/staging_deployment_secret-scanning-git-app + env_file: .env + networks: + - infisical + mongo: container_name: infisical-mongo image: mongo diff --git a/helm-charts/infisical/templates/_helpers.tpl b/helm-charts/infisical/templates/_helpers.tpl index 500edea33..ac07d327c 100644 --- a/helm-charts/infisical/templates/_helpers.tpl +++ b/helm-charts/infisical/templates/_helpers.tpl @@ -51,6 +51,16 @@ component: {{ .Values.frontend.name | quote }} {{ include "infisical.common.matchLabels" . }} {{- end -}} +{{- define "infisical.secretScanningGitApp.labels" -}} +{{ include "infisical.secretScanningGitApp.matchLabels" . }} +{{ include "infisical.common.metaLabels" . }} +{{- end -}} + +{{- define "infisical.secretScanningGitApp.matchLabels" -}} +component: {{ .Values.secretScanningGitApp.name | quote }} +{{ include "infisical.common.matchLabels" . }} +{{- end -}} + {{- define "infisical.mongodb.labels" -}} {{ include "infisical.mongodb.matchLabels" . }} {{ include "infisical.common.metaLabels" . }} @@ -112,6 +122,24 @@ We truncate at 63 chars because some Kubernetes name fields are limited to this {{- end -}} {{- end -}} + +{{/* +Create a fully qualified secretScanningGitApp name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +*/}} +{{- define "infisical.secretScanningGitApp.fullname" -}} +{{- if .Values.secretScanningGitApp.fullnameOverride -}} +{{- .Values.secretScanningGitApp.fullnameOverride | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- $name := default .Chart.Name .Values.nameOverride -}} +{{- if contains $name .Release.Name -}} +{{- printf "%s-%s" .Release.Name .Values.secretScanningGitApp.name | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- printf "%s-%s-%s" .Release.Name $name .Values.secretScanningGitApp.name | trunc 63 | trimSuffix "-" -}} +{{- end -}} +{{- end -}} +{{- end -}} + {{/* Create the mongodb connection string. */}} diff --git a/helm-charts/infisical/templates/ingress.yaml b/helm-charts/infisical/templates/ingress.yaml index a675fa2ff..c27703956 100644 --- a/helm-charts/infisical/templates/ingress.yaml +++ b/helm-charts/infisical/templates/ingress.yaml @@ -44,6 +44,13 @@ spec: name: {{ include "infisical.backend.fullname" . }} port: number: 4000 + - path: {{ $ingress.secretScanningGitApp.path }} + pathType: {{ $ingress.secretScanningGitApp.pathType }} + backend: + service: + name: {{ include "infisical.secretScanningGitApp.fullname" . }} + port: + number: 3001 {{- if $ingress.hostName }} host: {{ $ingress.hostName }} {{- end }} diff --git a/helm-charts/infisical/templates/secret-scanning-git-app-deployment.yaml b/helm-charts/infisical/templates/secret-scanning-git-app-deployment.yaml new file mode 100644 index 000000000..cc426049f --- /dev/null +++ b/helm-charts/infisical/templates/secret-scanning-git-app-deployment.yaml @@ -0,0 +1,67 @@ +{{- $secretScanningGitApp := .Values.secretScanningGitApp }} +{{- $backend := .Values.backend }} +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ include "infisical.secretScanningGitApp.fullname" . }} + annotations: + updatedAt: {{ now | date "2006-01-01 MST 15:04:05" | quote }} + {{- with $secretScanningGitApp.deploymentAnnotations }} + {{- toYaml . | nindent 4 }} + {{- end }} + labels: + {{- include "infisical.secretScanningGitApp.labels" . | nindent 4 }} +spec: + replicas: {{ $secretScanningGitApp.replicaCount }} + selector: + matchLabels: + {{- include "infisical.secretScanningGitApp.matchLabels" . | nindent 6 }} + template: + metadata: + labels: + {{- include "infisical.secretScanningGitApp.matchLabels" . | nindent 8 }} + annotations: + updatedAt: {{ now | date "2006-01-01 MST 15:04:05" | quote }} + {{- with $secretScanningGitApp.podAnnotations }} + {{- toYaml . | nindent 8 }} + {{- end }} + spec: + containers: + - name: {{ template "infisical.name" . }}-{{ $secretScanningGitApp.name }} + image: "{{ $secretScanningGitApp.image.repository }}:{{ $secretScanningGitApp.image.tag | default "latest" }}" + imagePullPolicy: {{ $secretScanningGitApp.image.pullPolicy }} + readinessProbe: + httpGet: + path: / + port: 3000 + initialDelaySeconds: 10 + periodSeconds: 10 + ports: + - containerPort: 3000 + envFrom: + - secretRef: + name: {{ $backend.kubeSecretRef | default (include "infisical.backend.fullname" .) }} + +--- + +apiVersion: v1 +kind: Service +metadata: + name: {{ include "infisical.secretScanningGitApp.fullname" . }} + labels: + {{- include "infisical.secretScanningGitApp.labels" . | nindent 4 }} + {{- with $secretScanningGitApp.service.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} +spec: + type: {{ $secretScanningGitApp.service.type }} + selector: + {{- include "infisical.secretScanningGitApp.matchLabels" . | nindent 8 }} + ports: + - protocol: TCP + port: 3001 + targetPort: 3000 # container port + {{- if eq $secretScanningGitApp.service.type "NodePort" }} + nodePort: {{ $secretScanningGitApp.service.nodePort }} + {{- end }} diff --git a/helm-charts/infisical/values.yaml b/helm-charts/infisical/values.yaml index a65f59223..ac9630389 100644 --- a/helm-charts/infisical/values.yaml +++ b/helm-charts/infisical/values.yaml @@ -169,6 +169,53 @@ backendEnvironmentVariables: ## MONGO_URL: "" +secretScanningGitApp: + ## @param backend.enabled Enable git scanning app + ## + enabled: true + ## @param backend.name Backend name + ## + name: secret-scanning-git-app + ## @param backend.fullnameOverride Backend fullnameOverride + ## + fullnameOverride: "" + ## @param backend.podAnnotations Backend pod annotations + ## + podAnnotations: {} + ## @param backend.deploymentAnnotations Backend deployment annotations + ## + deploymentAnnotations: {} + ## @param backend.replicaCount Backend replica count + ## + replicaCount: 2 + ## Backend image parameters + ## + image: + ## @param backend.image.repository Backend image repository + ## + repository: infisical/staging_deployment_secret-scanning-git-app + ## @param backend.image.tag Backend image tag + ## + tag: "latest" + ## @param backend.image.pullPolicy Backend image pullPolicy + ## + pullPolicy: IfNotPresent + ## @param backend.kubeSecretRef Backend secret resource reference name (containing required [backend configuration variables](https://infisical.com/docs/self-hosting/configuration/envars)) + ## + kubeSecretRef: "" + ## Backend service + ## + service: + ## @param backend.service.annotations Backend service annotations + ## + annotations: {} + ## @param backend.service.type Backend service type + ## + type: ClusterIP + ## @param backend.service.nodePort Backend service nodePort (used if above type is `NodePort`) + ## + nodePort: "" + ## @section MongoDB(®) parameters ## Documentation : https://github.com/bitnami/charts/blob/main/bitnami/mongodb/values.yaml ## @@ -327,6 +374,11 @@ ingress: backend: path: /api pathType: Prefix + ## @skip ingress.backend + ## + secretScanningGitApp: + path: /git-app-api + pathType: Prefix ## @param ingress.tls Ingress TLS hosts (matching above hostName) ## Replace with your own domain ## diff --git a/nginx/default.conf b/nginx/default.conf index 4c0e2434d..f824372be 100644 --- a/nginx/default.conf +++ b/nginx/default.conf @@ -15,6 +15,20 @@ server { proxy_cookie_path / "/; HttpOnly; SameSite=strict"; } + location /git-app-api { + proxy_set_header X-Real-RIP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + + proxy_set_header Host $http_host; + proxy_set_header X-NginX-Proxy true; + + proxy_pass http://git-app:3000/; + proxy_redirect off; + # proxy_redirect http://localhost:8080/ http://frontend.example.com/; + + proxy_cookie_path / "/; secure; HttpOnly; SameSite=strict"; + } + location / { include /etc/nginx/mime.types; diff --git a/secret-engine/Dockerfile.dev b/secret-engine/Dockerfile.dev index b40ba2365..52745d9ce 100644 --- a/secret-engine/Dockerfile.dev +++ b/secret-engine/Dockerfile.dev @@ -10,4 +10,4 @@ RUN apt-get update && apt-get install -y bash curl && curl -1sLf \ && apt-get update && apt-get install -y infisical=0.8.1 -CMD [ "npm", "start" ] +CMD [ "npm", "run", "start:dev" ] diff --git a/secret-engine/src/index.ts b/secret-engine/src/index.ts index 067efcfac..09dfedd44 100644 --- a/secret-engine/src/index.ts +++ b/secret-engine/src/index.ts @@ -4,7 +4,7 @@ import { writeFile, readFile, rm, mkdir, } from "fs"; import { tmpdir } from "os"; import { join } from "path" import mongoose from "mongoose"; -import GitRisks from "./models/gitRisks"; +import GitRisks, { STATUS_RESOLVED_FALSE_POSITIVE } from "./models/gitRisks"; import GitAppOrganizationInstallation from "./models/gitAppOrganizationInstallation"; import { sendMail, setTransporter } from "./helper/nodemailer"; import { initSmtp } from "./service/smtp"; @@ -66,7 +66,7 @@ export = async (app: Probot) => { return } - const findingsByFingerprint: { [key: string]: SecretMatch; } = {} + const allFindingsByFingerprint: { [key: string]: SecretMatch; } = {} for (const commit of commits) { for (const filepath of [...commit.added, ...commit.modified]) { @@ -89,7 +89,7 @@ export = async (app: Probot) => { finding.File = filepath finding.Author = commit.author.name finding.Email = commit.author.email - findingsByFingerprint[fingerPrint] = finding + allFindingsByFingerprint[fingerPrint] = finding } } catch (error) { @@ -98,18 +98,27 @@ export = async (app: Probot) => { } } + + // change to update - for (const key in findingsByFingerprint) { - await GitRisks.findOneAndUpdate({ fingerprint: findingsByFingerprint[key].Fingerprint }, + const noneFalsePositiveFindings = {} + + for (const key in allFindingsByFingerprint) { + const risk = await GitRisks.findOneAndUpdate({ fingerprint: allFindingsByFingerprint[key].Fingerprint }, { - ...convertKeysToLowercase(findingsByFingerprint[key]), + ...convertKeysToLowercase(allFindingsByFingerprint[key]), installationId: installation.id, organization: installationLinkToOrgExists.organizationId, repositoryFullName: repository.full_name, repositoryId: repository.id }, { upsert: true - }) + }).lean() + + if (risk.status != STATUS_RESOLVED_FALSE_POSITIVE) { + noneFalsePositiveFindings[key] = { ...convertKeysToLowercase(allFindingsByFingerprint[key]) } + } + } // get emails of admins const adminsOfWork = await MembershipOrg.find({ @@ -128,12 +137,16 @@ export = async (app: Probot) => { const adminOrOwnerEmails = userEmails.map(userObject => userObject.email) + + // TODO + // don't notify if the risk is marked as false positive + await sendMail({ template: "secretLeakIncident.handlebars", subjectLine: `Incident alert: leaked secrets found in Github repository ${repository.full_name}`, recipients: [pusher.email, ...adminOrOwnerEmails], substitutions: { - numberOfSecrets: Object.keys(findingsByFingerprint).length, + numberOfSecrets: Object.keys(allFindingsByFingerprint).length, pusher_email: pusher.email, pusher_name: pusher.name } From e9e2eade890b5901a4cb3cb3bb90a5d3f9fbf198 Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Wed, 5 Jul 2023 17:56:30 -0400 Subject: [PATCH 013/132] update helm chart version --- helm-charts/infisical/Chart.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/helm-charts/infisical/Chart.yaml b/helm-charts/infisical/Chart.yaml index aaafc28ba..01d6524d1 100644 --- a/helm-charts/infisical/Chart.yaml +++ b/helm-charts/infisical/Chart.yaml @@ -7,7 +7,7 @@ type: application # This is the chart version. This version number should be incremented each time you make changes # to the chart and its templates, including the app version. # Versions are expected to follow Semantic Versioning (https://semver.org/) -version: 0.1.17 +version: 0.2.0 # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. Versions are not expected to From da113612eb2f4a1bea77f278a09cf5e4027267b5 Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Wed, 5 Jul 2023 18:09:46 -0400 Subject: [PATCH 014/132] diable secret scan by default --- .../templates/secret-scanning-git-app-deployment.yaml | 6 ++++-- helm-charts/infisical/values.yaml | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/helm-charts/infisical/templates/secret-scanning-git-app-deployment.yaml b/helm-charts/infisical/templates/secret-scanning-git-app-deployment.yaml index cc426049f..78a5fecf5 100644 --- a/helm-charts/infisical/templates/secret-scanning-git-app-deployment.yaml +++ b/helm-charts/infisical/templates/secret-scanning-git-app-deployment.yaml @@ -1,5 +1,6 @@ {{- $secretScanningGitApp := .Values.secretScanningGitApp }} {{- $backend := .Values.backend }} +{{- if .Values.secretScanningGitApp.enabled }} apiVersion: apps/v1 kind: Deployment metadata: @@ -41,9 +42,9 @@ spec: envFrom: - secretRef: name: {{ $backend.kubeSecretRef | default (include "infisical.backend.fullname" .) }} - +{{- end }} --- - +{{- if .Values.secretScanningGitApp.enabled }} apiVersion: v1 kind: Service metadata: @@ -65,3 +66,4 @@ spec: {{- if eq $secretScanningGitApp.service.type "NodePort" }} nodePort: {{ $secretScanningGitApp.service.nodePort }} {{- end }} +{{- end }} \ No newline at end of file diff --git a/helm-charts/infisical/values.yaml b/helm-charts/infisical/values.yaml index ac9630389..d346dca86 100644 --- a/helm-charts/infisical/values.yaml +++ b/helm-charts/infisical/values.yaml @@ -172,7 +172,7 @@ backendEnvironmentVariables: secretScanningGitApp: ## @param backend.enabled Enable git scanning app ## - enabled: true + enabled: false ## @param backend.name Backend name ## name: secret-scanning-git-app From 11a19eef0731003cb4d19e8a503ef9f97d8922db Mon Sep 17 00:00:00 2001 From: agoodman1999 Date: Thu, 6 Jul 2023 13:20:48 -0400 Subject: [PATCH 015/132] add --path flag to docs for infisical secrets set --- docs/cli/commands/secrets.mdx | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docs/cli/commands/secrets.mdx b/docs/cli/commands/secrets.mdx index 3b1ccd3fb..67f09c542 100644 --- a/docs/cli/commands/secrets.mdx +++ b/docs/cli/commands/secrets.mdx @@ -90,6 +90,14 @@ $ infisical secrets set STRIPE_API_KEY=sjdgwkeudyjwe DOMAIN=example.com HASH=jeb Default value: `dev` + + Used to select the project folder in which the secrets will be set. Useful when creating new secrets under a particular path. + + ```bash + # Example + infisical secrets set DOMAIN=example.com --path /backend + ``` + From f9fca42c5bf17d4b03c27b5e8012749414dd0d4e Mon Sep 17 00:00:00 2001 From: agoodman1999 Date: Thu, 6 Jul 2023 13:36:15 -0400 Subject: [PATCH 016/132] fix incorrect leading slash in example --- docs/cli/commands/secrets.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/cli/commands/secrets.mdx b/docs/cli/commands/secrets.mdx index 67f09c542..24a8f596b 100644 --- a/docs/cli/commands/secrets.mdx +++ b/docs/cli/commands/secrets.mdx @@ -95,7 +95,7 @@ $ infisical secrets set STRIPE_API_KEY=sjdgwkeudyjwe DOMAIN=example.com HASH=jeb ```bash # Example - infisical secrets set DOMAIN=example.com --path /backend + infisical secrets set DOMAIN=example.com --path backend ``` From 7020c7aeabf30c1e38dfb441866ab0e50d48d5f8 Mon Sep 17 00:00:00 2001 From: Afrie Irham Date: Sun, 9 Jul 2023 15:08:25 +0800 Subject: [PATCH 017/132] fix: completing allow user to press Enter in forgot password flow --- frontend/src/pages/password-reset.tsx | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/frontend/src/pages/password-reset.tsx b/frontend/src/pages/password-reset.tsx index 4ce6d4004..30efc2c3b 100644 --- a/frontend/src/pages/password-reset.tsx +++ b/frontend/src/pages/password-reset.tsx @@ -1,6 +1,6 @@ import crypto from "crypto"; -import { useState } from "react"; +import { FormEvent, useState } from "react"; import Image from "next/image"; import { useRouter } from "next/router"; import { faCheck, faX } from "@fortawesome/free-solid-svg-icons"; @@ -24,6 +24,7 @@ const client = new jsrp.client(); export default function PasswordReset() { const [verificationToken, setVerificationToken] = useState(""); const [step, setStep] = useState(1); + const [loading, setLoading] = useState(false); const [backupKey, setBackupKey] = useState(""); const [privateKey, setPrivateKey] = useState(""); const [newPassword, setNewPassword] = useState(""); @@ -38,7 +39,8 @@ export default function PasswordReset() { const email = (parsedUrl.to as string)?.replace(" ", "+").trim(); // Unencrypt the private key with a backup key - const getEncryptedKeyHandler = async () => { + const getEncryptedKeyHandler = async (e: FormEvent) => { + e.preventDefault(); try { const result = await getBackupEncryptedPrivateKey({ verificationToken }); @@ -57,7 +59,8 @@ export default function PasswordReset() { }; // If everything is correct, reset the password - const resetPasswordHandler = async () => { + const resetPasswordHandler = async (e: FormEvent) => { + e.preventDefault(); const errorCheck = passwordCheck({ password: newPassword, setPasswordErrorLength, @@ -125,6 +128,7 @@ export default function PasswordReset() { if (response?.status === 200) { router.push("/login"); } + setLoading(false) }); } ); @@ -162,7 +166,7 @@ export default function PasswordReset() { // Input backup key const stepInputBackupKey = ( -
    +

    Enter your backup key

    @@ -186,18 +190,19 @@ export default function PasswordReset() {
    -
    + ); // Enter new password const stepEnterNewPassword = ( -
    +

    Enter new password

    @@ -269,13 +274,15 @@ export default function PasswordReset() {
    -
    + ); return ( From 93264fd2d07a0521d6bd867a862d8e7b01edfa70 Mon Sep 17 00:00:00 2001 From: Reza Rahemtola Date: Sun, 9 Jul 2023 15:40:59 +0200 Subject: [PATCH 018/132] docs: Fix wrong integration name --- docs/self-hosting/configuration/envars.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/self-hosting/configuration/envars.mdx b/docs/self-hosting/configuration/envars.mdx index ef9fc1fd0..fddf6f82e 100644 --- a/docs/self-hosting/configuration/envars.mdx +++ b/docs/self-hosting/configuration/envars.mdx @@ -105,7 +105,7 @@ Other environment variables are listed below to increase the functionality of yo - OAuth2 slug for Netlify integration + OAuth2 slug for Vercel integration From 5ef2508736a9717c6e7453651f23a01ec2eeb6dc Mon Sep 17 00:00:00 2001 From: Reza Rahemtola Date: Sun, 9 Jul 2023 15:44:25 +0200 Subject: [PATCH 019/132] docs: Add missing pull request contribution link --- docs/contributing/overview.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/contributing/overview.mdx b/docs/contributing/overview.mdx index 76475862d..f73422388 100644 --- a/docs/contributing/overview.mdx +++ b/docs/contributing/overview.mdx @@ -30,7 +30,7 @@ If you're ever in doubt about whether or not a proposed feature aligns with Infi ## Writing and submitting code Anyone can contribute code to Infisical. To get started, check out the [local development guide](/contributing/developing), make your changes, and submit a pull request to the main repository -adhering to the [pull request guide](/). +adhering to the [pull request guide](/contributing/pull-requests). ## Licensing From 63544648596ee1aaa964ac709165202f3e447c4d Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Sun, 9 Jul 2023 22:40:00 -0400 Subject: [PATCH 020/132] update terraform docs with path and env --- docs/integrations/frameworks/terraform.mdx | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/docs/integrations/frameworks/terraform.mdx b/docs/integrations/frameworks/terraform.mdx index 0826a833e..2643ca5af 100644 --- a/docs/integrations/frameworks/terraform.mdx +++ b/docs/integrations/frameworks/terraform.mdx @@ -44,10 +44,17 @@ provider "infisical" { ### 3. Fetch Infisical Secrets -Use the `infisical_secrets` data source to fetch your secrets. This is defined with an empty block `{}` as the provider automatically fetches all secrets associated with your service token. +Use the `infisical_secrets` data source to fetch your secrets. In this block, you must set the `env_slug` and `folder_path` to scope the secrets you want. + +`env_slug` is the slug of the environment name. This slug name can be found under the project settings page on the Infisical dashboard. + +`folder_path` is the path to the folder in a given environment. The path `/` for root of the environment where as `/folder1` is the folder at the root of the environment. ```hcl main.tf -data "infisical_secrets" "my-secrets" {} +data "infisical_secrets" "my-secrets" { + env_slug = "dev" + folder_path = "/some-folder/another-folder" +} ``` ### 4. Define Outputs From 13a81c9222e2f83acda803332a14d801946f923a Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Sun, 9 Jul 2023 23:25:35 -0400 Subject: [PATCH 021/132] add 401 error message for get secrets in cli --- cli/packages/api/api.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/cli/packages/api/api.go b/cli/packages/api/api.go index a94be0ab0..5afec6782 100644 --- a/cli/packages/api/api.go +++ b/cli/packages/api/api.go @@ -246,7 +246,11 @@ func CallGetSecretsV3(httpClient *resty.Client, request GetEncryptedSecretsV3Req } if response.IsError() { - return GetEncryptedSecretsV3Response{}, fmt.Errorf("CallGetSecretsV3: Unsuccessful response. Please make sure your secret path, workspace and environment name are all correct [response=%s]", response) + if response.StatusCode() == 401 { + return GetEncryptedSecretsV3Response{}, fmt.Errorf("CallGetSecretsV3: Request to access secrets with [environment=%v] [path=%v] [workspaceId=%v] is denied. Please check if your authentication method has access to requested scope", request.Environment, request.SecretPath, request.WorkspaceId) + } else { + return GetEncryptedSecretsV3Response{}, fmt.Errorf("CallGetSecretsV3: Unsuccessful response. Please make sure your secret path, workspace and environment name are all correct [response=%v]", response.RawResponse) + } } return secretsResponse, nil From 34fef4aaadf05d4b7f409dc55b3ef09192e61dde Mon Sep 17 00:00:00 2001 From: Juned Khan Date: Mon, 10 Jul 2023 12:16:51 +0530 Subject: [PATCH 022/132] Implemented feature to remove the trailing slash from the domain url --- cli/packages/cmd/login.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/cli/packages/cmd/login.go b/cli/packages/cmd/login.go index c629130a4..f8d397233 100644 --- a/cli/packages/cmd/login.go +++ b/cli/packages/cmd/login.go @@ -73,7 +73,6 @@ var loginCmd = &cobra.Command{ return } } - //override domain domainQuery := true if config.INFISICAL_URL_MANUAL_OVERRIDE != "" && config.INFISICAL_URL_MANUAL_OVERRIDE != util.INFISICAL_DEFAULT_API_URL { @@ -322,6 +321,8 @@ func DomainOverridePrompt() (bool, error) { ) options := []string{PRESET, OVERRIDE} + //trim the '/' from the end of the domain url + config.INFISICAL_URL_MANUAL_OVERRIDE = strings.TrimRight(config.INFISICAL_URL_MANUAL_OVERRIDE, "/") optionsPrompt := promptui.Select{ Label: fmt.Sprintf("Current INFISICAL_API_URL Domain Override: %s", config.INFISICAL_URL_MANUAL_OVERRIDE), Items: options, @@ -380,7 +381,8 @@ func askForDomain() error { if err != nil { return err } - + //trimmed the '/' from the end of the self hosting url + domain = strings.TrimRight(domain, "/") //set api and login url config.INFISICAL_URL = fmt.Sprintf("%s/api", domain) config.INFISICAL_LOGIN_URL = fmt.Sprintf("%s/login", domain) From e91e7f96c2753c604de4c90f5074dc42e3cab9db Mon Sep 17 00:00:00 2001 From: Tuan Dang Date: Mon, 10 Jul 2023 13:48:46 +0700 Subject: [PATCH 023/132] Update free plan logic --- .../controllers/v1/organizationsController.ts | 24 +++++++ backend/src/ee/routes/v1/organizations.ts | 15 +++++ backend/src/ee/services/EELicenseService.ts | 12 +++- .../v2/UpgradePlanModal/UpgradePlanModal.tsx | 63 ++++++++++++++----- frontend/src/hooks/api/organization/index.ts | 4 +- .../src/hooks/api/organization/queries.tsx | 24 ++++++- frontend/src/hooks/api/organization/types.ts | 5 ++ frontend/src/hooks/api/subscriptions/types.ts | 1 + .../AppLayout/components/NavBar/NavBar.tsx | 31 ++++++--- .../BillingCloudTab/PreviewSection.tsx | 33 ++++++++-- 10 files changed, 180 insertions(+), 32 deletions(-) diff --git a/backend/src/ee/controllers/v1/organizationsController.ts b/backend/src/ee/controllers/v1/organizationsController.ts index fb13a6575..652fc4b32 100644 --- a/backend/src/ee/controllers/v1/organizationsController.ts +++ b/backend/src/ee/controllers/v1/organizationsController.ts @@ -27,6 +27,30 @@ export const getOrganizationPlan = async (req: Request, res: Response) => { }); } +/** + * Return checkout url for pro trial + * @param req + * @param res + * @returns + */ +export const startOrganizationTrial = async (req: Request, res: Response) => { + const { organizationId } = req.params; + const { success_url } = req.body; + + const { data: { url } } = await licenseServerKeyRequest.post( + `${await getLicenseServerUrl()}/api/license-server/v1/customers/${req.organization.customerId}/session/trial`, + { + success_url + } + ); + + EELicenseService.delPlan(organizationId); + + return res.status(200).send({ + url + }); +} + /** * Return the organization's current plan's billing info * @param req diff --git a/backend/src/ee/routes/v1/organizations.ts b/backend/src/ee/routes/v1/organizations.ts index 37be3a96d..c9104d964 100644 --- a/backend/src/ee/routes/v1/organizations.ts +++ b/backend/src/ee/routes/v1/organizations.ts @@ -41,6 +41,21 @@ router.get( organizationsController.getOrganizationPlan ); +router.post( + "/:organizationId/session/trial", + requireAuth({ + acceptedAuthModes: ["jwt"], + }), + requireOrganizationAuth({ + acceptedRoles: [OWNER, ADMIN, MEMBER], + acceptedStatuses: [ACCEPTED], + }), + param("organizationId").exists().trim(), + body("success_url").exists().trim(), + validateRequest, + organizationsController.startOrganizationTrial +); + router.get( "/:organizationId/plan/billing", requireAuth({ diff --git a/backend/src/ee/services/EELicenseService.ts b/backend/src/ee/services/EELicenseService.ts index b4bb97753..88220933d 100644 --- a/backend/src/ee/services/EELicenseService.ts +++ b/backend/src/ee/services/EELicenseService.ts @@ -32,6 +32,7 @@ interface FeatureSet { auditLogs: boolean; status: 'incomplete' | 'incomplete_expired' | 'trialing' | 'active' | 'past_due' | 'canceled' | 'unpaid' | null; trial_end: number | null; + has_used_trial: boolean; } /** @@ -63,7 +64,8 @@ class EELicenseService { customAlerts: true, auditLogs: false, status: null, - trial_end: null + trial_end: null, + has_used_trial: true } public localFeatureSet: NodeCache; @@ -71,7 +73,7 @@ class EELicenseService { constructor() { this._isLicenseValid = true; this.localFeatureSet = new NodeCache({ - stdTTL: 300, + stdTTL: 60, }); } @@ -112,6 +114,12 @@ class EELicenseService { await this.getPlan(organizationId, workspaceId); } } + + public async delPlan(organizationId: string) { + if (this.instanceType === "cloud") { + this.localFeatureSet.del(`${organizationId}-`); + } + } public async initGlobalFeatureSet() { const licenseServerKey = await getLicenseServerKey(); diff --git a/frontend/src/components/v2/UpgradePlanModal/UpgradePlanModal.tsx b/frontend/src/components/v2/UpgradePlanModal/UpgradePlanModal.tsx index 968f131bc..e09d35920 100644 --- a/frontend/src/components/v2/UpgradePlanModal/UpgradePlanModal.tsx +++ b/frontend/src/components/v2/UpgradePlanModal/UpgradePlanModal.tsx @@ -1,9 +1,11 @@ import Link from "next/link"; - import { useSubscription } from "@app/context"; - -import { Button } from "../Button"; +import { Button } from "@app/components/v2"; import { Modal, ModalClose, ModalContent } from "../Modal"; +import { useOrganization } from "@app/context"; +import { + useGetOrgTrialUrl +} from "@app/hooks/api"; type Props = { isOpen?: boolean; @@ -13,32 +15,61 @@ type Props = { export const UpgradePlanModal = ({ text, isOpen, onOpenChange }: Props): JSX.Element => { const { subscription } = useSubscription(); + const { currentOrg } = useOrganization(); + const { mutateAsync, isLoading } = useGetOrgTrialUrl(); const link = (subscription && subscription.slug !== null) ? `/settings/billing/${localStorage.getItem("projectData.id") as string}` : "https://infisical.com/scheduledemo"; + const handleUpgradeBtnClick = async () => { + try { + if (!subscription || !currentOrg) return; + + if (!subscription.has_used_trial) { + // direct user to start pro trial + + const url = await mutateAsync({ + orgId: currentOrg._id, + success_url: window.location.href + }); + + window.location.href = url; + } else { + // direct user to upgrade their plan + window.location.href = link; + } + + } catch (err) { + console.error(err); + } + } + return ( - - , - - - - ]} >

    {text}

    Upgrade and get access to this, as well as to other powerful enhancements.

    +
    + + +
    ) diff --git a/frontend/src/hooks/api/organization/index.ts b/frontend/src/hooks/api/organization/index.ts index cffa80d63..d523e1c04 100644 --- a/frontend/src/hooks/api/organization/index.ts +++ b/frontend/src/hooks/api/organization/index.ts @@ -13,4 +13,6 @@ export { useGetOrgPmtMethods, useGetOrgTaxIds, useRenameOrg, - useUpdateOrgBillingDetails} from "./queries"; + useGetOrgTrialUrl, + useUpdateOrgBillingDetails +} from "./queries"; diff --git a/frontend/src/hooks/api/organization/queries.tsx b/frontend/src/hooks/api/organization/queries.tsx index d3f161f64..293ad7022 100644 --- a/frontend/src/hooks/api/organization/queries.tsx +++ b/frontend/src/hooks/api/organization/queries.tsx @@ -10,8 +10,10 @@ import { PlanBillingInfo, PmtMethod, ProductsTable, - RenameOrgDTO, - TaxID} from "./types"; + RenameOrgDTO, + GetOrgTrialUrlDTO, + TaxID +} from "./types"; const organizationKeys = { getUserOrganization: ["organization"] as const, @@ -47,6 +49,24 @@ export const useRenameOrg = () => { }); }; +export const useGetOrgTrialUrl = () => { + return useMutation({ + mutationFn: async ({ + orgId, + success_url + }: { + orgId: string; + success_url: string; + }) => { + const { data: { url } } = await apiRequest.post(`/api/v1/organizations/${orgId}/session/trial`, { + success_url + }) + + return url; + } + }); +}; + export const useGetOrgPlanBillingInfo = (organizationId: string) => { return useQuery({ queryKey: organizationKeys.getOrgPlanBillingInfo(organizationId), diff --git a/frontend/src/hooks/api/organization/types.ts b/frontend/src/hooks/api/organization/types.ts index a33a7f875..b2573400b 100644 --- a/frontend/src/hooks/api/organization/types.ts +++ b/frontend/src/hooks/api/organization/types.ts @@ -10,6 +10,11 @@ export type RenameOrgDTO = { newOrgName: string; }; +export type GetOrgTrialUrlDTO = { + orgId: string; + success_url: string; +} + export type BillingDetails = { name: string; email: string; diff --git a/frontend/src/hooks/api/subscriptions/types.ts b/frontend/src/hooks/api/subscriptions/types.ts index ca50255c8..d3d673764 100644 --- a/frontend/src/hooks/api/subscriptions/types.ts +++ b/frontend/src/hooks/api/subscriptions/types.ts @@ -15,4 +15,5 @@ export type SubscriptionPlan = { environmentLimit: number; status: "incomplete" | "incomplete_expired" | "trialing" | "active" | "past_due" | "canceled" | "unpaid" | null; trial_end: number | null; + has_used_trial: boolean; }; diff --git a/frontend/src/layouts/AppLayout/components/NavBar/NavBar.tsx b/frontend/src/layouts/AppLayout/components/NavBar/NavBar.tsx index b263a25ff..52fa0ba5b 100644 --- a/frontend/src/layouts/AppLayout/components/NavBar/NavBar.tsx +++ b/frontend/src/layouts/AppLayout/components/NavBar/NavBar.tsx @@ -22,7 +22,10 @@ import {TFunction} from "i18next"; import guidGenerator from "@app/components/utilities/randomId"; import { useOrganization, useSubscription,useUser } from "@app/context"; -import { useLogoutUser } from "@app/hooks/api"; +import { + useLogoutUser, + useGetOrgTrialUrl +} from "@app/hooks/api"; const supportOptions = (t: TFunction) => [ [ @@ -67,6 +70,7 @@ export const Navbar = () => { const { subscription } = useSubscription(); const { currentOrg, orgs } = useOrganization(); + const { mutateAsync, isLoading } = useGetOrgTrialUrl(); const { user } = useUser(); const logout = useLogoutUser(); @@ -346,12 +350,25 @@ export const Navbar = () => {
    - {subscription && subscription.status === "trialing" && subscription.trial_end && ( -
    -

    - {`Currently trialing the ${formatPlanSlug(subscription.slug)} plan until ${formatDate(subscription.trial_end).formattedDate} - ${formatDate(subscription.trial_end).remainingDays} day(s) left. `} - Add a card to avoid being downgraded to the Starter plan afterward → -

    + {subscription && subscription.slug === "starter" && !subscription.has_used_trial && ( +
    +
    )}
    diff --git a/frontend/src/views/Settings/BillingSettingsPage/components/BillingCloudTab/PreviewSection.tsx b/frontend/src/views/Settings/BillingSettingsPage/components/BillingCloudTab/PreviewSection.tsx index 23a4be24d..cccbfaf2e 100644 --- a/frontend/src/views/Settings/BillingSettingsPage/components/BillingCloudTab/PreviewSection.tsx +++ b/frontend/src/views/Settings/BillingSettingsPage/components/BillingCloudTab/PreviewSection.tsx @@ -2,7 +2,9 @@ import { Button } from "@app/components/v2"; import { useOrganization,useSubscription } from "@app/context"; import { useCreateCustomerPortalSession, - useGetOrgPlanBillingInfo} from "@app/hooks/api"; + useGetOrgPlanBillingInfo, + useGetOrgTrialUrl +} from "@app/hooks/api"; import { usePopUp } from "@app/hooks/usePopUp"; import { ManagePlansModal } from "./ManagePlansModal"; @@ -11,6 +13,7 @@ export const PreviewSection = () => { const { currentOrg } = useOrganization(); const { subscription, isLoading: isSubscriptionLoading } = useSubscription(); const { data, isLoading } = useGetOrgPlanBillingInfo(currentOrg?._id ?? ""); + const getOrgTrialUrl = useGetOrgTrialUrl(); const createCustomerPortalSession = useCreateCustomerPortalSession(); const { popUp, handlePopUpOpen, handlePopUpToggle } = usePopUp([ @@ -42,19 +45,41 @@ export const PreviewSection = () => { .replace(/-/g, " "); } + const handleUpgradeBtnClick = async () => { + try { + if (!subscription || !currentOrg) return; + + if (!subscription.has_used_trial) { + // direct user to start pro trial + const url = await getOrgTrialUrl.mutateAsync({ + orgId: currentOrg._id, + success_url: window.location.href + }); + + window.location.href = url; + } else { + // open compare plans modal + handlePopUpOpen("managePlan"); + } + } catch (err) { + console.error(err); + } + } + return (
    - {!isSubscriptionLoading && subscription?.slug !== "enterprise" && subscription?.slug !== "pro" && subscription?.slug !== "pro-annual" && ( + {subscription && subscription?.slug !== "enterprise" && subscription?.slug !== "pro" && subscription?.slug !== "pro-annual" && (

    Become Infisical

    Unlimited members, projects, RBAC, smart alerts, and so much more

    )} From bdf4ebd1bcfddcdbfe81b1d8ee6f6a13f0d3b771 Mon Sep 17 00:00:00 2001 From: Vladyslav Matsiiako Date: Sun, 9 Jul 2023 23:58:27 -0700 Subject: [PATCH 024/132] second iteration of the new sidebar --- frontend/public/images/kubernetes-asset.png | Bin 0 -> 182130 bytes ...em-outline-103-coin-cash-monetization.json | 1 + .../system-outline-165-view-carousel.json | 1 + frontend/src/components/basic/Layout.tsx | 385 ---------------- .../src/components/dashboard/DropZone.tsx | 2 +- .../src/components/login/InitialLoginStep.tsx | 5 +- frontend/src/components/login/LoginStep.tsx | 133 ------ frontend/src/components/login/MFAStep.tsx | 12 +- .../components/login/PasswordInputStep.tsx | 5 +- .../components/navigation/NavBarDashboard.tsx | 316 ------------- .../src/components/navigation/NavHeader.tsx | 14 +- .../src/components/signup/TeamInviteStep.tsx | 8 +- .../utilities/checks/OnboardingCheck.ts | 10 - .../components/utilities/intercom/intercom.ts | 1 - .../src/components/v2/Dropdown/Dropdown.tsx | 4 +- frontend/src/components/v2/Menu/Menu.tsx | 49 +- .../src/ee/components/ActivitySideBar.tsx | 2 +- frontend/src/layouts/AppLayout/AppLayout.tsx | 430 +++++++++++------- frontend/src/pages/404.tsx | 9 +- frontend/src/pages/dashboard.tsx | 14 +- frontend/src/pages/home/[id].tsx | 244 ---------- frontend/src/pages/login.tsx | 13 +- frontend/src/pages/noprojects.tsx | 55 --- .../[id].tsx => org/[id]/billing/index.tsx} | 0 frontend/src/pages/org/[id]/members/index.tsx | 21 + .../org/{[id].tsx => [id]/overview/index.tsx} | 405 +++++++++-------- .../org/[id] => org/[id]/settings}/index.tsx | 0 .../[id].tsx => personal-settings.tsx} | 0 .../[id]/audit-logs/index.tsx} | 14 +- .../[id]/members/index.tsx} | 22 +- .../[id]/secrets/index.tsx} | 0 .../[id]/settings/index.tsx} | 0 frontend/src/pages/saml-sso.tsx | 10 +- frontend/src/pages/signup.tsx | 10 +- frontend/src/pages/signupinvite.tsx | 17 +- .../DashboardPage/DashboardEnvOverview.tsx | 5 +- .../src/views/DashboardPage/DashboardPage.tsx | 5 +- .../IntegrationsPage/IntegrationsPage.tsx | 6 +- .../CloudIntegrationSection.tsx | 5 +- .../IntegrationsSection.tsx | 10 +- .../src/views/Org/MembersPage/MembersPage.tsx | 238 ++++++++++ .../OrgIncidentContactsTable.tsx | 200 ++++++++ .../OrgIncidentContactsTable/index.tsx | 1 + .../OrgMembersTable/OrgMembersTable.tsx | 349 ++++++++++++++ .../components/OrgMembersTable/index.tsx | 1 + .../OrgNameChangeSection.tsx | 69 +++ .../components/OrgNameChangeSection/index.tsx | 1 + .../OrgServiceAccountsTable.tsx | 367 +++++++++++++++ .../OrgServiceAccountsTable/index.tsx | 1 + .../Org/MembersPage/components/index.tsx | 5 + frontend/src/views/Org/MembersPage/index.tsx | 1 + .../BillingSettingsPage.tsx | 7 +- .../BillingTabGroup/BillingTabGroup.tsx | 2 +- .../OrgSettingsPage/OrgSettingsPage.tsx | 58 +-- .../OrgIncidentContactsSection.tsx | 4 +- .../OrgMembersSection/OrgMembersSection.tsx | 4 +- .../OrgNameChangeSection.tsx | 8 +- .../OrgServiceAccountsTable.tsx | 2 +- .../APIKeySection/APIKeySection.tsx | 2 +- .../ChangePasswordSection.tsx | 2 +- .../EmergencyKitSection.tsx | 2 +- .../PersonalSettingsPage.tsx | 9 +- .../PersonalTabGroup/PersonalTabGroup.tsx | 2 +- .../SecuritySection/SecuritySection.tsx | 2 +- .../SessionsSection/SessionsSection.tsx | 2 +- .../ProjectSettingsPage.tsx | 11 +- .../AutoCapitalizationSection.tsx | 2 +- .../DeleteProjectSection.tsx | 16 +- .../components/E2EESection/E2EESection.tsx | 2 +- .../EnvironmentSection/EnvironmentSection.tsx | 2 +- .../ProjectIndexSecretsSection.tsx | 2 +- .../ProjectNameChangeSection.tsx | 2 +- .../ProjectTabGroup/ProjectTabGroup.tsx | 2 +- .../SecretTagsSection/SecretTagsSection.tsx | 2 +- .../ServiceTokenSection.tsx | 2 +- 75 files changed, 1927 insertions(+), 1698 deletions(-) create mode 100644 frontend/public/images/kubernetes-asset.png create mode 100644 frontend/public/lotties/system-outline-103-coin-cash-monetization.json create mode 100644 frontend/public/lotties/system-outline-165-view-carousel.json delete mode 100644 frontend/src/components/basic/Layout.tsx delete mode 100644 frontend/src/components/login/LoginStep.tsx delete mode 100644 frontend/src/components/navigation/NavBarDashboard.tsx delete mode 100644 frontend/src/pages/home/[id].tsx delete mode 100644 frontend/src/pages/noprojects.tsx rename frontend/src/pages/{settings/billing/[id].tsx => org/[id]/billing/index.tsx} (100%) create mode 100644 frontend/src/pages/org/[id]/members/index.tsx rename frontend/src/pages/org/{[id].tsx => [id]/overview/index.tsx} (56%) rename frontend/src/pages/{settings/org/[id] => org/[id]/settings}/index.tsx (100%) rename frontend/src/pages/{settings/personal/[id].tsx => personal-settings.tsx} (100%) rename frontend/src/pages/{activity/[id].tsx => project/[id]/audit-logs/index.tsx} (93%) rename frontend/src/pages/{users/[id].tsx => project/[id]/members/index.tsx} (89%) rename frontend/src/pages/{dashboard/[id].tsx => project/[id]/secrets/index.tsx} (100%) rename frontend/src/pages/{settings/project/[id].tsx => project/[id]/settings/index.tsx} (100%) create mode 100644 frontend/src/views/Org/MembersPage/MembersPage.tsx create mode 100644 frontend/src/views/Org/MembersPage/components/OrgIncidentContactsTable/OrgIncidentContactsTable.tsx create mode 100644 frontend/src/views/Org/MembersPage/components/OrgIncidentContactsTable/index.tsx create mode 100644 frontend/src/views/Org/MembersPage/components/OrgMembersTable/OrgMembersTable.tsx create mode 100644 frontend/src/views/Org/MembersPage/components/OrgMembersTable/index.tsx create mode 100644 frontend/src/views/Org/MembersPage/components/OrgNameChangeSection/OrgNameChangeSection.tsx create mode 100644 frontend/src/views/Org/MembersPage/components/OrgNameChangeSection/index.tsx create mode 100644 frontend/src/views/Org/MembersPage/components/OrgServiceAccountsTable/OrgServiceAccountsTable.tsx create mode 100644 frontend/src/views/Org/MembersPage/components/OrgServiceAccountsTable/index.tsx create mode 100644 frontend/src/views/Org/MembersPage/components/index.tsx create mode 100644 frontend/src/views/Org/MembersPage/index.tsx diff --git a/frontend/public/images/kubernetes-asset.png b/frontend/public/images/kubernetes-asset.png new file mode 100644 index 0000000000000000000000000000000000000000..a0938b8e87c552abcbf18a7c4e6bc21ce2d4113c GIT binary patch literal 182130 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 literal 0 HcmV?d00001 diff --git a/frontend/public/lotties/system-outline-103-coin-cash-monetization.json b/frontend/public/lotties/system-outline-103-coin-cash-monetization.json new file mode 100644 index 000000000..2167a770d --- /dev/null +++ b/frontend/public/lotties/system-outline-103-coin-cash-monetization.json @@ -0,0 +1 @@ +{"v":"5.8.1","fr":60,"ip":0,"op":61,"w":500,"h":500,"nm":"103-coin-cash-monetization-outline","ddd":0,"assets":[{"id":"comp_0","nm":"in-coin","fr":60,"layers":[{"ddd":0,"ind":1,"ty":3,"nm":"NULL ","sr":1,"ks":{"o":{"a":0,"k":0,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.301],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[-270]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":22,"s":[-152]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":40,"s":[-189]},{"t":59,"s":[-180]}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.301,"y":1},"o":{"x":0.167,"y":0.167},"t":0,"s":[250,529,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":15,"s":[250,212,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":33,"s":[250,274,0],"to":[0,0,0],"ti":[0,0,0]},{"t":52,"s":[250,250,0]}],"ix":2,"l":2},"a":{"a":0,"k":[50,50,0],"ix":1,"l":2},"s":{"a":0,"k":[-100,100,100],"ix":6,"l":2}},"ao":0,"ip":0,"op":300,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":".primary.design","cl":"primary design","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":-180,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[50.75,-143.5,0],"to":[0,0,0],"ti":[0,-0.287,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13.332,"s":[50.75,-142.667,0],"to":[0,0.087,0],"ti":[0,-0.018,0]},{"t":20,"s":[50.75,-142.5,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0.75,-195,0],"ix":1,"l":2},"s":{"a":0,"k":[-100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-61.5,-195],[63,-195]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13.332,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-9.417,-195],[10.917,-195]],"c":false}]},{"t":20,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[1,-195],[0.5,-195]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":3,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":31.3,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":4,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":1,"op":20,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":".primary.design","cl":"primary design","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":-180,"ix":10},"p":{"a":0,"k":[50.75,-47,0],"ix":2,"l":2},"a":{"a":0,"k":[0.75,-195,0],"ix":1,"l":2},"s":{"a":0,"k":[-100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-61.5,-195],[63,-195]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13.332,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-149.208,-195],[-128.458,-195]],"c":false}]},{"t":20,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-166.75,-195],[-166.75,-195]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":3,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":31.3,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":4,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":1,"op":20,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":".primary.design","cl":"primary design","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":-180,"ix":10},"p":{"a":0,"k":[50.75,146.5,0],"ix":2,"l":2},"a":{"a":0,"k":[0.75,-195,0],"ix":1,"l":2},"s":{"a":0,"k":[-100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-61.5,-195],[63,-195]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13.332,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-149.208,-195],[-128.458,-195]],"c":false}]},{"t":20,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-166.75,-195],[-166.75,-195]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":3,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":31.3,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":4,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":1,"op":20,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":".primary.design","cl":"primary design","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":-180,"ix":10},"p":{"a":0,"k":[50.75,49.5,0],"ix":2,"l":2},"a":{"a":0,"k":[0.75,-195,0],"ix":1,"l":2},"s":{"a":0,"k":[-100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-61.5,-195],[63,-195]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13.332,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-170.875,-195],[-150.125,-195]],"c":false}]},{"t":20,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-192.75,-195],[-192.75,-195]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":3,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":31.3,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":4,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":1,"op":20,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":".primary.design","cl":"primary design","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":-180,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[50.75,243.5,0],"to":[0,0,0],"ti":[0,0.287,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13.332,"s":[50.75,242.667,0],"to":[0,-0.087,0],"ti":[0,0.018,0]},{"t":20,"s":[50.75,242.5,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0.75,-195,0],"ix":1,"l":2},"s":{"a":0,"k":[-100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-61.5,-195],[63,-195]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13.332,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-9.417,-195],[10.917,-195]],"c":false}]},{"t":20,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[1,-195],[0.5,-195]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":3,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":31.3,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":4,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":1,"op":20,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":".primary.design","cl":"primary design","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":-180,"ix":10},"p":{"a":0,"k":[49.998,50.001,0],"ix":2,"l":2},"a":{"a":0,"k":[249.998,249.999,0],"ix":1,"l":2},"s":{"a":0,"k":[-100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-60.999,-20.671],[-60.999,21]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13.332,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-10.167,-20.808],[-10.167,20.863]],"c":false}]},{"t":20,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0,-20.836],[0,20.836]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-61,198.075],[-61,239.746]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13.332,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-10.162,197.938],[-10.162,239.61]],"c":false}]},{"t":20,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0.006,197.911],[0.006,239.582]],"c":false}]}],"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[0,0],[0,24.45],[0,22.661],[0,24.45],[0,0],[0,-24.45]],"o":[[0,24.45],[0,0],[0,-24.45],[0,-10.661],[0,-24.45],[0,0],[0,0]],"v":[[-60.999,158.689],[-61,198.08],[-61,158.689],[-60.999,102.385],[-60.999,60.364],[-61,20.995],[-61,65.266]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13.332,"s":[{"i":[[0,0],[-20.375,0],[0,24.45],[31.566,22.661],[0,24.45],[-20.375,0],[0,-24.45]],"o":[[0,24.45],[20.375,0],[0,-24.45],[-14.85,-10.661],[0,-24.45],[20.375,0],[0,0]],"v":[[-47.054,158.552],[-10.162,197.943],[26.731,158.552],[-18.148,102.248],[-47.054,60.227],[-10.162,20.859],[26.731,65.13]],"c":false}]},{"t":20,"s":[{"i":[[0,0],[-24.45,0],[0,24.45],[37.879,22.661],[0,24.45],[-24.45,0],[0,-24.45]],"o":[[0,24.45],[24.45,0],[0,-24.45],[-17.82,-10.661],[0,-24.45],[24.45,0],[0,0]],"v":[[-44.265,158.525],[0.006,197.915],[44.277,158.525],[-9.578,102.221],[-44.265,60.2],[0.006,20.831],[44.277,65.102]],"c":false}]}],"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":3,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":31.3,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[249.998,140.63],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":0,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,-106.43],[-0.001,0],[0,106.43],[0.001,0]],"o":[[0,106.43],[0.001,0],[0,-106.43],[-0.001,0]],"v":[[-61.001,109.534],[-61,302.243],[-60.998,109.534],[-61,-83.176]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13.332,"s":[{"i":[[0,-106.43],[88.692,0],[0,106.43],[-88.692,0]],"o":[[0,106.43],[-88.692,0],[0,-106.43],[88.692,0]],"v":[[150.425,109.397],[-10.166,302.106],[-170.757,109.397],[-10.166,-83.313]],"c":true}]},{"t":20,"s":[{"i":[[0,-106.43],[106.43,0],[0,106.43],[-106.43,0]],"o":[[0,106.43],[-106.43,0],[0,-106.43],[106.43,0]],"v":[[192.71,109.369],[0.001,302.079],[-192.709,109.369],[0.001,-83.34]],"c":true}]}],"ix":2},"nm":"Path 4","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":3,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":31.3,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"t":0,"s":[50],"h":1},{"t":13.33203125,"s":[50],"h":1}],"ix":2},"o":{"a":0,"k":90,"ix":3},"m":1,"ix":3,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"tr","p":{"a":0,"k":[249.998,140.63],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"fl","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":4,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":1,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false}],"ip":1,"op":20,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":".primary.design","cl":"primary design","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":-180,"ix":10},"p":{"a":0,"k":[49.998,50.001,0],"ix":2,"l":2},"a":{"a":0,"k":[249.998,249.999,0],"ix":1,"l":2},"s":{"a":0,"k":[-100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[63.001,-20.836],[63.001,20.836]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13.332,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[10.5,-20.836],[10.5,20.836]],"c":false}]},{"t":20,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0,-20.836],[0,20.836]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[63,197.911],[63,239.582]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13.332,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[10.505,197.911],[10.505,239.582]],"c":false}]},{"t":20,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0.006,197.911],[0.006,239.582]],"c":false}]}],"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[0,0],[0,24.45],[0,22.661],[0,24.45],[0,0],[0,-24.45]],"o":[[0,24.45],[0,0],[0,-24.45],[0,-10.661],[0,-24.45],[0,0],[0,0]],"v":[[63.001,158.525],[63,197.915],[63,158.525],[63.001,102.221],[63.001,60.2],[63,20.831],[63,65.102]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13.332,"s":[{"i":[[0,0],[-20.375,0],[0,24.45],[31.566,22.661],[0,24.45],[-20.375,0],[0,-24.45]],"o":[[0,24.45],[20.375,0],[0,-24.45],[-14.85,-10.661],[0,-24.45],[20.375,0],[0,0]],"v":[[-26.387,158.525],[10.505,197.915],[47.397,158.525],[2.519,102.221],[-26.387,60.2],[10.505,20.831],[47.397,65.102]],"c":false}]},{"t":20,"s":[{"i":[[0,0],[-24.45,0],[0,24.45],[37.879,22.661],[0,24.45],[-24.45,0],[0,-24.45]],"o":[[0,24.45],[24.45,0],[0,-24.45],[-17.82,-10.661],[0,-24.45],[24.45,0],[0,0]],"v":[[-44.265,158.525],[0.006,197.915],[44.277,158.525],[-9.578,102.221],[-44.265,60.2],[0.006,20.831],[44.277,65.102]],"c":false}]}],"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":3,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":31.3,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[249.998,140.63],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"t":0,"s":[100],"h":1},{"t":13.33203125,"s":[100],"h":1}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,-106.43],[-0.001,0],[0,106.43],[0.001,0]],"o":[[0,106.43],[0.001,0],[0,-106.43],[-0.001,0]],"v":[[62.999,109.369],[63,302.079],[63.002,109.369],[63,-83.34]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13.332,"s":[{"i":[[0,-106.43],[88.692,0],[0,106.43],[-88.692,0]],"o":[[0,106.43],[-88.692,0],[0,-106.43],[88.692,0]],"v":[[171.091,109.369],[10.501,302.079],[-150.09,109.369],[10.501,-83.34]],"c":true}]},{"t":20,"s":[{"i":[[0,-106.43],[106.43,0],[0,106.43],[-106.43,0]],"o":[[0,106.43],[-106.43,0],[0,-106.43],[106.43,0]],"v":[[192.71,109.369],[0.001,302.079],[-192.709,109.369],[0.001,-83.34]],"c":true}]}],"ix":2},"nm":"Path 4","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":3,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":31.3,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[249.998,140.63],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"t":0,"s":[100],"h":1},{"t":13.33203125,"s":[100],"h":1}],"ix":2},"o":{"a":0,"k":-90,"ix":3},"m":1,"ix":3,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"gr","it":[{"ty":"fl","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":4,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":1,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false}],"ip":1,"op":20,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":".primary.design","cl":"primary design","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":-180,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[50.75,-142.5,0],"to":[0,-0.018,0],"ti":[0,0.087,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":23.5,"s":[50.75,-142.667,0],"to":[0,-0.287,0],"ti":[0,0,0]},{"i":{"x":0.29,"y":1},"o":{"x":0.167,"y":0.167},"t":30,"s":[50.75,-143.5,0],"to":[0,0,0],"ti":[0,-0.018,0]},{"t":60,"s":[50.75,-142.5,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0.75,-195,0],"ix":1,"l":2},"s":{"a":0,"k":[-100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[1,-195],[0.5,-195]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":23.5,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-9.417,-195],[10.917,-195]],"c":false}]},{"i":{"x":0.29,"y":1},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-61.5,-195],[63,-195]],"c":false}]},{"t":60,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[1,-195],[0.5,-195]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":3,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":31.3,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":4,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":20,"op":60,"st":1,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":".primary.design","cl":"primary design","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":-180,"ix":10},"p":{"a":0,"k":[50.75,-47,0],"ix":2,"l":2},"a":{"a":0,"k":[0.75,-195,0],"ix":1,"l":2},"s":{"a":0,"k":[-100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[167.25,-195],[167.25,-195]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":23.5,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[129.125,-195],[149.875,-195]],"c":false}]},{"i":{"x":0.29,"y":1},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-61.5,-195],[63,-195]],"c":false}]},{"t":60,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-166.75,-195],[-166.75,-195]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":3,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":31.3,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":4,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":20,"op":60,"st":1,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":".primary.design","cl":"primary design","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":-180,"ix":10},"p":{"a":0,"k":[50.75,146.5,0],"ix":2,"l":2},"a":{"a":0,"k":[0.75,-195,0],"ix":1,"l":2},"s":{"a":0,"k":[-100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[167.25,-195],[167.25,-195]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":23.5,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[129.125,-195],[149.875,-195]],"c":false}]},{"i":{"x":0.29,"y":1},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-61.5,-195],[63,-195]],"c":false}]},{"t":60,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-166.75,-195],[-166.75,-195]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":3,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":31.3,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":4,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":20,"op":60,"st":1,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":".primary.design","cl":"primary design","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":-180,"ix":10},"p":{"a":0,"k":[50.75,49.5,0],"ix":2,"l":2},"a":{"a":0,"k":[0.75,-195,0],"ix":1,"l":2},"s":{"a":0,"k":[-100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[193.25,-195],[193.25,-195]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":23.5,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[150.792,-195],[171.542,-195]],"c":false}]},{"i":{"x":0.29,"y":1},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-61.5,-195],[63,-195]],"c":false}]},{"t":60,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-192.75,-195],[-192.75,-195]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":3,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":31.3,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":4,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":20,"op":60,"st":1,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":".primary.design","cl":"primary design","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":-180,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[50.75,242.5,0],"to":[0,0.018,0],"ti":[0,-0.087,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":23.5,"s":[50.75,242.667,0],"to":[0,0.287,0],"ti":[0,0,0]},{"i":{"x":0.29,"y":1},"o":{"x":0.167,"y":0.167},"t":30,"s":[50.75,243.5,0],"to":[0,0,0],"ti":[0,0.018,0]},{"t":60,"s":[50.75,242.5,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0.75,-195,0],"ix":1,"l":2},"s":{"a":0,"k":[-100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[1,-195],[0.5,-195]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":23.5,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-9.417,-195],[10.917,-195]],"c":false}]},{"i":{"x":0.29,"y":1},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-61.5,-195],[63,-195]],"c":false}]},{"t":60,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[1,-195],[0.5,-195]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":3,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":31.3,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":4,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":20,"op":60,"st":1,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":".primary.design","cl":"primary design","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":-180,"ix":10},"p":{"a":0,"k":[49.998,50.001,0],"ix":2,"l":2},"a":{"a":0,"k":[249.998,249.999,0],"ix":1,"l":2},"s":{"a":0,"k":[-100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0,-20.836],[0,20.836]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":23.5,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-10.167,-20.808],[-10.167,20.863]],"c":false}]},{"i":{"x":0.29,"y":1},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-60.999,-20.671],[-60.999,21]],"c":false}]},{"t":60,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0,-20.836],[0,20.836]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0.006,197.911],[0.006,239.582]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":23.5,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-10.162,197.938],[-10.162,239.61]],"c":false}]},{"i":{"x":0.29,"y":1},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-61,198.075],[-61,239.746]],"c":false}]},{"t":60,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0.006,197.911],[0.006,239.582]],"c":false}]}],"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[0,0],[-24.45,0],[0,24.45],[37.879,22.661],[0,24.45],[-24.45,0],[0,-24.45]],"o":[[0,24.45],[24.45,0],[0,-24.45],[-17.82,-10.661],[0,-24.45],[24.45,0],[0,0]],"v":[[-44.265,158.525],[0.006,197.915],[44.277,158.525],[-9.578,102.221],[-44.265,60.2],[0.006,20.831],[44.277,65.102]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":23.5,"s":[{"i":[[0,0],[-20.375,0],[0,24.45],[31.566,22.661],[0,24.45],[-20.375,0],[0,-24.45]],"o":[[0,24.45],[20.375,0],[0,-24.45],[-14.85,-10.661],[0,-24.45],[20.375,0],[0,0]],"v":[[-47.054,158.552],[-10.162,197.943],[26.731,158.552],[-18.148,102.248],[-47.054,60.227],[-10.162,20.859],[26.731,65.13]],"c":false}]},{"i":{"x":0.29,"y":1},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0,0],[0,0],[0,24.45],[0,22.661],[0,24.45],[0,0],[0,-24.45]],"o":[[0,24.45],[0,0],[0,-24.45],[0,-10.661],[0,-24.45],[0,0],[0,0]],"v":[[-60.999,158.689],[-61,198.08],[-61,158.689],[-60.999,102.385],[-60.999,60.364],[-61,20.995],[-61,65.266]],"c":false}]},{"t":60,"s":[{"i":[[0,0],[-24.45,0],[0,24.45],[37.879,22.661],[0,24.45],[-24.45,0],[0,-24.45]],"o":[[0,24.45],[24.45,0],[0,-24.45],[-17.82,-10.661],[0,-24.45],[24.45,0],[0,0]],"v":[[-44.265,158.525],[0.006,197.915],[44.277,158.525],[-9.578,102.221],[-44.265,60.2],[0.006,20.831],[44.277,65.102]],"c":false}]}],"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":3,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":31.3,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[249.998,140.63],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"t":20,"s":[100],"h":1},{"t":30,"s":[0],"h":1}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[0,-106.43],[106.43,0],[0,106.43],[-106.43,0]],"o":[[0,106.43],[-106.43,0],[0,-106.43],[106.43,0]],"v":[[192.71,109.369],[0.001,302.079],[-192.709,109.369],[0.001,-83.34]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":23.5,"s":[{"i":[[0,-106.43],[88.692,0],[0,106.43],[-88.692,0]],"o":[[0,106.43],[-88.692,0],[0,-106.43],[88.692,0]],"v":[[150.425,109.397],[-10.166,302.106],[-170.757,109.397],[-10.166,-83.313]],"c":true}]},{"i":{"x":0.29,"y":1},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0,-106.43],[-0.001,0],[0,106.43],[0.001,0]],"o":[[0,106.43],[0.001,0],[0,-106.43],[-0.001,0]],"v":[[-61.001,109.534],[-61,302.243],[-60.998,109.534],[-61,-83.176]],"c":true}]},{"t":60,"s":[{"i":[[0,-106.43],[106.43,0],[0,106.43],[-106.43,0]],"o":[[0,106.43],[-106.43,0],[0,-106.43],[106.43,0]],"v":[[192.71,109.369],[0.001,302.079],[-192.709,109.369],[0.001,-83.34]],"c":true}]}],"ix":2},"nm":"Path 4","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":3,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":31.3,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"t":20,"s":[100],"h":1},{"t":23.5,"s":[100],"h":1},{"t":30,"s":[50],"h":1}],"ix":2},"o":{"a":0,"k":90,"ix":3},"m":1,"ix":3,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"tr","p":{"a":0,"k":[249.998,140.63],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"fl","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":4,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":1,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false}],"ip":20,"op":60,"st":1,"bm":0},{"ddd":0,"ind":15,"ty":4,"nm":".primary.design","cl":"primary design","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":-180,"ix":10},"p":{"a":0,"k":[49.998,50.001,0],"ix":2,"l":2},"a":{"a":0,"k":[249.998,249.999,0],"ix":1,"l":2},"s":{"a":0,"k":[-100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0,-20.836],[0,20.836]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":23.5,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[10.5,-20.836],[10.5,20.836]],"c":false}]},{"i":{"x":0.29,"y":1},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[63.001,-20.836],[63.001,20.836]],"c":false}]},{"t":60,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0,-20.836],[0,20.836]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0.006,197.911],[0.006,239.582]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":23.5,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[10.505,197.911],[10.505,239.582]],"c":false}]},{"i":{"x":0.29,"y":1},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[63,197.911],[63,239.582]],"c":false}]},{"t":60,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0.006,197.911],[0.006,239.582]],"c":false}]}],"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[0,0],[-24.45,0],[0,24.45],[37.879,22.661],[0,24.45],[-24.45,0],[0,-24.45]],"o":[[0,24.45],[24.45,0],[0,-24.45],[-17.82,-10.661],[0,-24.45],[24.45,0],[0,0]],"v":[[-44.265,158.525],[0.006,197.915],[44.277,158.525],[-9.578,102.221],[-44.265,60.2],[0.006,20.831],[44.277,65.102]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":23.5,"s":[{"i":[[0,0],[-20.375,0],[0,24.45],[31.566,22.661],[0,24.45],[-20.375,0],[0,-24.45]],"o":[[0,24.45],[20.375,0],[0,-24.45],[-14.85,-10.661],[0,-24.45],[20.375,0],[0,0]],"v":[[-26.387,158.525],[10.505,197.915],[47.397,158.525],[2.519,102.221],[-26.387,60.2],[10.505,20.831],[47.397,65.102]],"c":false}]},{"i":{"x":0.29,"y":1},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0,0],[0,0],[0,24.45],[0,22.661],[0,24.45],[0,0],[0,-24.45]],"o":[[0,24.45],[0,0],[0,-24.45],[0,-10.661],[0,-24.45],[0,0],[0,0]],"v":[[63.001,158.525],[63,197.915],[63,158.525],[63.001,102.221],[63.001,60.2],[63,20.831],[63,65.102]],"c":false}]},{"t":60,"s":[{"i":[[0,0],[-24.45,0],[0,24.45],[37.879,22.661],[0,24.45],[-24.45,0],[0,-24.45]],"o":[[0,24.45],[24.45,0],[0,-24.45],[-17.82,-10.661],[0,-24.45],[24.45,0],[0,0]],"v":[[-44.265,158.525],[0.006,197.915],[44.277,158.525],[-9.578,102.221],[-44.265,60.2],[0.006,20.831],[44.277,65.102]],"c":false}]}],"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":3,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":31.3,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[249.998,140.63],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"t":20,"s":[0],"h":1},{"t":23.5,"s":[0],"h":1},{"t":30,"s":[100],"h":1}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[0,-106.43],[106.43,0],[0,106.43],[-106.43,0]],"o":[[0,106.43],[-106.43,0],[0,-106.43],[106.43,0]],"v":[[192.71,109.369],[0.001,302.079],[-192.709,109.369],[0.001,-83.34]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":23.5,"s":[{"i":[[0,-106.43],[88.692,0],[0,106.43],[-88.692,0]],"o":[[0,106.43],[-88.692,0],[0,-106.43],[88.692,0]],"v":[[171.091,109.369],[10.501,302.079],[-150.09,109.369],[10.501,-83.34]],"c":true}]},{"i":{"x":0.29,"y":1},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0,-106.43],[-0.001,0],[0,106.43],[0.001,0]],"o":[[0,106.43],[0.001,0],[0,-106.43],[-0.001,0]],"v":[[62.999,109.369],[63,302.079],[63.002,109.369],[63,-83.34]],"c":true}]},{"t":60,"s":[{"i":[[0,-106.43],[106.43,0],[0,106.43],[-106.43,0]],"o":[[0,106.43],[-106.43,0],[0,-106.43],[106.43,0]],"v":[[192.71,109.369],[0.001,302.079],[-192.709,109.369],[0.001,-83.34]],"c":true}]}],"ix":2},"nm":"Path 4","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":3,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":31.3,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[249.998,140.63],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"t":20,"s":[50],"h":1},{"t":23.5,"s":[50],"h":1},{"t":30,"s":[100],"h":1}],"ix":2},"o":{"a":0,"k":-90,"ix":3},"m":1,"ix":3,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"gr","it":[{"ty":"fl","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":4,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":1,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false}],"ip":20,"op":60,"st":1,"bm":0},{"ddd":0,"ind":16,"ty":4,"nm":".primary.design","cl":"primary design","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[249.998,249.999,0],"ix":2,"l":2},"a":{"a":0,"k":[249.998,249.999,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-13.186,0.025],[-0.025,0],[-0.022,0],[0,-15.761],[-8.644,0],[0,8.643],[25.476,6.899],[0,0],[8.644,0],[0,-8.643],[0,0],[0,-26.851],[-16.456,-9.535],[-1.805,-1.08],[0,0],[0,-14.091],[13.187,-0.023],[0.025,0],[0.025,0],[0,17.49],[8.644,0],[0,-8.643],[-26.389,-5.847],[0,0],[-8.644,0],[0,8.643],[0,0],[0,26.864],[11.729,11.188],[19.101,11.424],[0,0],[1.892,1.096],[0,12.245]],"o":[[0.025,0],[0.022,0],[15.753,0.033],[0,8.643],[8.644,0],[0,-27.629],[0,0],[0,-8.643],[-8.644,0],[0,0],[-26.386,5.846],[0,30.906],[1.768,1.024],[0,0],[37.853,22.64],[0,17.49],[-0.025,0],[-0.025,0],[-13.187,-0.023],[0,-8.643],[-8.644,0],[0,26.864],[0,0],[0,8.643],[8.644,0],[0,0],[26.389,-5.847],[0,-15.958],[-9.731,-9.283],[0,0],[-1.932,-1.155],[-15.848,-9.183],[0,-17.472]],"v":[[-0.079,-72.891],[-0.005,-72.888],[0.061,-72.891],[28.621,-44.271],[44.271,-28.621],[59.921,-44.271],[15.645,-102.107],[15.645,-130.209],[-0.005,-145.859],[-15.656,-130.209],[-15.656,-102.519],[-59.921,-49.174],[-22.985,3.135],[-17.618,6.278],[-15.969,7.264],[28.621,49.151],[0.075,72.891],[0,72.887],[-0.074,72.891],[-28.621,49.151],[-44.271,33.501],[-59.921,49.151],[-15.65,102.519],[-15.65,130.209],[0,145.859],[15.651,130.209],[15.651,102.519],[59.921,49.151],[42.73,9.364],[0.097,-19.598],[-1.548,-20.583],[-7.292,-23.947],[-28.621,-49.174]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":4,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[250.003,250.003],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[97.631,0],[0,97.631],[-97.631,0],[0,-97.631]],"o":[[-97.631,0],[0,-97.631],[97.631,0],[0,97.631]],"v":[[0,177.059],[-177.059,0],[0,-177.059],[177.059,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[114.89,0],[0,-114.89],[-114.89,0],[0,114.89]],"o":[[-114.89,0],[0,114.89],[114.89,0],[0,-114.89]],"v":[[0,-208.359],[-208.359,0],[0,208.359],[208.359,0]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":4,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[249.998,249.999],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":3,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"st","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":3,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":1,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false}],"ip":60,"op":300,"st":0,"bm":0}]},{"id":"comp_1","nm":"hover-coin","fr":60,"layers":[{"ddd":0,"ind":1,"ty":4,"nm":".primary.design","cl":"primary design","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[250.75,442.5,0],"to":[0,0.018,0],"ti":[0,-0.087,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3.668,"s":[250.75,442.667,0],"to":[0,0.287,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":11,"s":[250.75,443.5,0],"to":[0,0,0],"ti":[0,0.287,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":18.332,"s":[250.75,442.667,0],"to":[0,-0.087,0],"ti":[0,0.018,0]},{"t":22,"s":[250.75,442.5,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0.75,-195,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[1,-195],[0.5,-195]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3.668,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-9.417,-195],[10.917,-195]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":11,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-61.5,-195],[63,-195]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":18.332,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-9.417,-195],[10.917,-195]],"c":false}]},{"t":22,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[1,-195],[0.5,-195]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":3,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":31.3,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":4,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":1,"op":22,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":".primary.design","cl":"primary design","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250.75,347,0],"ix":2,"l":2},"a":{"a":0,"k":[0.75,-195,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[167.25,-195],[167.25,-195]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3.668,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[129.125,-195],[149.875,-195]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":11,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-61.5,-195],[63,-195]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":18.332,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-149.208,-195],[-128.458,-195]],"c":false}]},{"t":22,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-166.75,-195],[-166.75,-195]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":3,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":31.3,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":4,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":1,"op":22,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":".primary.design","cl":"primary design","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250.75,153.5,0],"ix":2,"l":2},"a":{"a":0,"k":[0.75,-195,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[167.25,-195],[167.25,-195]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3.668,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[129.125,-195],[149.875,-195]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":11,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-61.5,-195],[63,-195]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":18.332,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-149.208,-195],[-128.458,-195]],"c":false}]},{"t":22,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-166.75,-195],[-166.75,-195]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":3,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":31.3,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":4,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":1,"op":22,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":".primary.design","cl":"primary design","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250.75,250.5,0],"ix":2,"l":2},"a":{"a":0,"k":[0.75,-195,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[193.25,-195],[193.25,-195]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3.668,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[150.792,-195],[171.542,-195]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":11,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-61.5,-195],[63,-195]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":18.332,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-170.875,-195],[-150.125,-195]],"c":false}]},{"t":22,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-192.75,-195],[-192.75,-195]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":3,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":31.3,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":4,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":1,"op":22,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":".primary.design","cl":"primary design","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[250.75,57.5,0],"to":[0,-0.018,0],"ti":[0,0.087,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3.668,"s":[250.75,57.333,0],"to":[0,-0.287,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":11,"s":[250.75,56.5,0],"to":[0,0,0],"ti":[0,-0.287,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":18.332,"s":[250.75,57.333,0],"to":[0,0.087,0],"ti":[0,-0.018,0]},{"t":22,"s":[250.75,57.5,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0.75,-195,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[1,-195],[0.5,-195]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3.668,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-9.417,-195],[10.917,-195]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":11,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-61.5,-195],[63,-195]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":18.332,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-9.417,-195],[10.917,-195]],"c":false}]},{"t":22,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[1,-195],[0.5,-195]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":3,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":31.3,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":4,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":1,"op":22,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":".primary.design","cl":"primary design","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[249.998,249.999,0],"ix":2,"l":2},"a":{"a":0,"k":[249.998,249.999,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0,-20.836],[0,20.836]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3.668,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-10.167,-20.808],[-10.167,20.863]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":11,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-60.999,-20.671],[-60.999,21]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":18.332,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-10.167,-20.808],[-10.167,20.863]],"c":false}]},{"t":22,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0,-20.836],[0,20.836]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0.006,197.911],[0.006,239.582]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3.668,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-10.162,197.938],[-10.162,239.61]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":11,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-61,198.075],[-61,239.746]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":18.332,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-10.162,197.938],[-10.162,239.61]],"c":false}]},{"t":22,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0.006,197.911],[0.006,239.582]],"c":false}]}],"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[-24.45,0],[0,24.45],[37.879,22.661],[0,24.45],[-24.45,0],[0,-24.45]],"o":[[0,24.45],[24.45,0],[0,-24.45],[-17.82,-10.661],[0,-24.45],[24.45,0],[0,0]],"v":[[-44.265,158.525],[0.006,197.915],[44.277,158.525],[-9.578,102.221],[-44.265,60.2],[0.006,20.831],[44.277,65.102]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3.668,"s":[{"i":[[0,0],[-20.375,0],[0,24.45],[31.566,22.661],[0,24.45],[-20.375,0],[0,-24.45]],"o":[[0,24.45],[20.375,0],[0,-24.45],[-14.85,-10.661],[0,-24.45],[20.375,0],[0,0]],"v":[[-47.054,158.552],[-10.162,197.943],[26.731,158.552],[-18.148,102.248],[-47.054,60.227],[-10.162,20.859],[26.731,65.13]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":11,"s":[{"i":[[0,0],[0,0],[0,24.45],[0,22.661],[0,24.45],[0,0],[0,-24.45]],"o":[[0,24.45],[0,0],[0,-24.45],[0,-10.661],[0,-24.45],[0,0],[0,0]],"v":[[-60.999,158.689],[-61,198.08],[-61,158.689],[-60.999,102.385],[-60.999,60.364],[-61,20.995],[-61,65.266]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":18.332,"s":[{"i":[[0,0],[-20.375,0],[0,24.45],[31.566,22.661],[0,24.45],[-20.375,0],[0,-24.45]],"o":[[0,24.45],[20.375,0],[0,-24.45],[-14.85,-10.661],[0,-24.45],[20.375,0],[0,0]],"v":[[-47.054,158.552],[-10.162,197.943],[26.731,158.552],[-18.148,102.248],[-47.054,60.227],[-10.162,20.859],[26.731,65.13]],"c":false}]},{"t":22,"s":[{"i":[[0,0],[-24.45,0],[0,24.45],[37.879,22.661],[0,24.45],[-24.45,0],[0,-24.45]],"o":[[0,24.45],[24.45,0],[0,-24.45],[-17.82,-10.661],[0,-24.45],[24.45,0],[0,0]],"v":[[-44.265,158.525],[0.006,197.915],[44.277,158.525],[-9.578,102.221],[-44.265,60.2],[0.006,20.831],[44.277,65.102]],"c":false}]}],"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":3,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":31.3,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[249.998,140.63],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"t":0,"s":[100],"h":1},{"t":11,"s":[0],"h":1}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,-106.43],[106.43,0],[0,106.43],[-106.43,0]],"o":[[0,106.43],[-106.43,0],[0,-106.43],[106.43,0]],"v":[[192.71,109.369],[0.001,302.079],[-192.709,109.369],[0.001,-83.34]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3.668,"s":[{"i":[[0,-106.43],[88.692,0],[0,106.43],[-88.692,0]],"o":[[0,106.43],[-88.692,0],[0,-106.43],[88.692,0]],"v":[[150.425,109.397],[-10.166,302.106],[-170.757,109.397],[-10.166,-83.313]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":11,"s":[{"i":[[0,-106.43],[-0.001,0],[0,106.43],[0.001,0]],"o":[[0,106.43],[0.001,0],[0,-106.43],[-0.001,0]],"v":[[-61.001,109.534],[-61,302.243],[-60.998,109.534],[-61,-83.176]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":18.332,"s":[{"i":[[0,-106.43],[88.692,0],[0,106.43],[-88.692,0]],"o":[[0,106.43],[-88.692,0],[0,-106.43],[88.692,0]],"v":[[150.425,109.397],[-10.166,302.106],[-170.757,109.397],[-10.166,-83.313]],"c":true}]},{"t":22,"s":[{"i":[[0,-106.43],[106.43,0],[0,106.43],[-106.43,0]],"o":[[0,106.43],[-106.43,0],[0,-106.43],[106.43,0]],"v":[[192.71,109.369],[0.001,302.079],[-192.709,109.369],[0.001,-83.34]],"c":true}]}],"ix":2},"nm":"Path 4","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":3,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":31.3,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"t":0,"s":[100],"h":1},{"t":3.668,"s":[100],"h":1},{"t":11,"s":[50],"h":1},{"t":18.33203125,"s":[50],"h":1}],"ix":2},"o":{"a":0,"k":90,"ix":3},"m":1,"ix":3,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"tr","p":{"a":0,"k":[249.998,140.63],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"fl","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":4,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":1,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false}],"ip":1,"op":22,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":".primary.design","cl":"primary design","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[249.998,249.999,0],"ix":2,"l":2},"a":{"a":0,"k":[249.998,249.999,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0,-20.836],[0,20.836]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3.668,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[10.5,-20.836],[10.5,20.836]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":11,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[63.001,-20.836],[63.001,20.836]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":18.332,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[10.5,-20.836],[10.5,20.836]],"c":false}]},{"t":22,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0,-20.836],[0,20.836]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0.006,197.911],[0.006,239.582]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3.668,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[10.505,197.911],[10.505,239.582]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":11,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[63,197.911],[63,239.582]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":18.332,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[10.505,197.911],[10.505,239.582]],"c":false}]},{"t":22,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0.006,197.911],[0.006,239.582]],"c":false}]}],"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[-24.45,0],[0,24.45],[37.879,22.661],[0,24.45],[-24.45,0],[0,-24.45]],"o":[[0,24.45],[24.45,0],[0,-24.45],[-17.82,-10.661],[0,-24.45],[24.45,0],[0,0]],"v":[[-44.265,158.525],[0.006,197.915],[44.277,158.525],[-9.578,102.221],[-44.265,60.2],[0.006,20.831],[44.277,65.102]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3.668,"s":[{"i":[[0,0],[-20.375,0],[0,24.45],[31.566,22.661],[0,24.45],[-20.375,0],[0,-24.45]],"o":[[0,24.45],[20.375,0],[0,-24.45],[-14.85,-10.661],[0,-24.45],[20.375,0],[0,0]],"v":[[-26.387,158.525],[10.505,197.915],[47.397,158.525],[2.519,102.221],[-26.387,60.2],[10.505,20.831],[47.397,65.102]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":11,"s":[{"i":[[0,0],[0,0],[0,24.45],[0,22.661],[0,24.45],[0,0],[0,-24.45]],"o":[[0,24.45],[0,0],[0,-24.45],[0,-10.661],[0,-24.45],[0,0],[0,0]],"v":[[63.001,158.525],[63,197.915],[63,158.525],[63.001,102.221],[63.001,60.2],[63,20.831],[63,65.102]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":18.332,"s":[{"i":[[0,0],[-20.375,0],[0,24.45],[31.566,22.661],[0,24.45],[-20.375,0],[0,-24.45]],"o":[[0,24.45],[20.375,0],[0,-24.45],[-14.85,-10.661],[0,-24.45],[20.375,0],[0,0]],"v":[[-26.387,158.525],[10.505,197.915],[47.397,158.525],[2.519,102.221],[-26.387,60.2],[10.505,20.831],[47.397,65.102]],"c":false}]},{"t":22,"s":[{"i":[[0,0],[-24.45,0],[0,24.45],[37.879,22.661],[0,24.45],[-24.45,0],[0,-24.45]],"o":[[0,24.45],[24.45,0],[0,-24.45],[-17.82,-10.661],[0,-24.45],[24.45,0],[0,0]],"v":[[-44.265,158.525],[0.006,197.915],[44.277,158.525],[-9.578,102.221],[-44.265,60.2],[0.006,20.831],[44.277,65.102]],"c":false}]}],"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":3,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":31.3,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[249.998,140.63],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"t":0,"s":[0],"h":1},{"t":3.668,"s":[0],"h":1},{"t":11,"s":[100],"h":1},{"t":18.33203125,"s":[100],"h":1}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,-106.43],[106.43,0],[0,106.43],[-106.43,0]],"o":[[0,106.43],[-106.43,0],[0,-106.43],[106.43,0]],"v":[[192.71,109.369],[0.001,302.079],[-192.709,109.369],[0.001,-83.34]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":3.668,"s":[{"i":[[0,-106.43],[88.692,0],[0,106.43],[-88.692,0]],"o":[[0,106.43],[-88.692,0],[0,-106.43],[88.692,0]],"v":[[171.091,109.369],[10.501,302.079],[-150.09,109.369],[10.501,-83.34]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":11,"s":[{"i":[[0,-106.43],[-0.001,0],[0,106.43],[0.001,0]],"o":[[0,106.43],[0.001,0],[0,-106.43],[-0.001,0]],"v":[[62.999,109.369],[63,302.079],[63.002,109.369],[63,-83.34]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":18.332,"s":[{"i":[[0,-106.43],[88.692,0],[0,106.43],[-88.692,0]],"o":[[0,106.43],[-88.692,0],[0,-106.43],[88.692,0]],"v":[[171.091,109.369],[10.501,302.079],[-150.09,109.369],[10.501,-83.34]],"c":true}]},{"t":22,"s":[{"i":[[0,-106.43],[106.43,0],[0,106.43],[-106.43,0]],"o":[[0,106.43],[-106.43,0],[0,-106.43],[106.43,0]],"v":[[192.71,109.369],[0.001,302.079],[-192.709,109.369],[0.001,-83.34]],"c":true}]}],"ix":2},"nm":"Path 4","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":3,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":31.3,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[249.998,140.63],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"t":0,"s":[50],"h":1},{"t":3.668,"s":[50],"h":1},{"t":11,"s":[100],"h":1},{"t":18.33203125,"s":[100],"h":1}],"ix":2},"o":{"a":0,"k":-90,"ix":3},"m":1,"ix":3,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"gr","it":[{"ty":"fl","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":4,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":1,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false}],"ip":1,"op":22,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":".primary.design","cl":"primary design","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22,"s":[250.75,442.5,0],"to":[0,0.018,0],"ti":[0,-0.087,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25.324,"s":[250.75,442.667,0],"to":[0,0.287,0],"ti":[0,0,0]},{"i":{"x":0.29,"y":1},"o":{"x":0.167,"y":0.167},"t":31.5,"s":[250.75,443.5,0],"to":[0,0,0],"ti":[0,0.018,0]},{"t":60,"s":[250.75,442.5,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0.75,-195,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[1,-195],[0.5,-195]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25.324,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-9.417,-195],[10.917,-195]],"c":false}]},{"i":{"x":0.29,"y":1},"o":{"x":0.167,"y":0.167},"t":31.5,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-61.5,-195],[63,-195]],"c":false}]},{"t":60,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[1,-195],[0.5,-195]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":3,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":31.3,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":4,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":22,"op":60,"st":1,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":".primary.design","cl":"primary design","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250.75,347,0],"ix":2,"l":2},"a":{"a":0,"k":[0.75,-195,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[167.25,-195],[167.25,-195]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25.324,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[129.125,-195],[149.875,-195]],"c":false}]},{"i":{"x":0.29,"y":1},"o":{"x":0.167,"y":0.167},"t":31.5,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-61.5,-195],[63,-195]],"c":false}]},{"t":60,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-166.75,-195],[-166.75,-195]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":3,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":31.3,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":4,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":22,"op":60,"st":1,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":".primary.design","cl":"primary design","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250.75,153.5,0],"ix":2,"l":2},"a":{"a":0,"k":[0.75,-195,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[167.25,-195],[167.25,-195]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25.324,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[129.125,-195],[149.875,-195]],"c":false}]},{"i":{"x":0.29,"y":1},"o":{"x":0.167,"y":0.167},"t":31.5,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-61.5,-195],[63,-195]],"c":false}]},{"t":60,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-166.75,-195],[-166.75,-195]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":3,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":31.3,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":4,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":22,"op":60,"st":1,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":".primary.design","cl":"primary design","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250.75,250.5,0],"ix":2,"l":2},"a":{"a":0,"k":[0.75,-195,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[193.25,-195],[193.25,-195]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25.324,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[150.792,-195],[171.542,-195]],"c":false}]},{"i":{"x":0.29,"y":1},"o":{"x":0.167,"y":0.167},"t":31.5,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-61.5,-195],[63,-195]],"c":false}]},{"t":60,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-192.75,-195],[-192.75,-195]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":3,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":31.3,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":4,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":22,"op":60,"st":1,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":".primary.design","cl":"primary design","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22,"s":[250.75,57.5,0],"to":[0,-0.018,0],"ti":[0,0.087,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25.324,"s":[250.75,57.333,0],"to":[0,-0.287,0],"ti":[0,0,0]},{"i":{"x":0.29,"y":1},"o":{"x":0.167,"y":0.167},"t":31.5,"s":[250.75,56.5,0],"to":[0,0,0],"ti":[0,-0.018,0]},{"t":60,"s":[250.75,57.5,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0.75,-195,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[1,-195],[0.5,-195]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25.324,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-9.417,-195],[10.917,-195]],"c":false}]},{"i":{"x":0.29,"y":1},"o":{"x":0.167,"y":0.167},"t":31.5,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-61.5,-195],[63,-195]],"c":false}]},{"t":60,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[1,-195],[0.5,-195]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":3,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":31.3,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":4,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":22,"op":60,"st":1,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":".primary.design","cl":"primary design","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[249.998,249.999,0],"ix":2,"l":2},"a":{"a":0,"k":[249.998,249.999,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0,-20.836],[0,20.836]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25.324,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-10.167,-20.808],[-10.167,20.863]],"c":false}]},{"i":{"x":0.29,"y":1},"o":{"x":0.167,"y":0.167},"t":31.5,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-60.999,-20.671],[-60.999,21]],"c":false}]},{"t":60,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0,-20.836],[0,20.836]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0.006,197.911],[0.006,239.582]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25.324,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-10.162,197.938],[-10.162,239.61]],"c":false}]},{"i":{"x":0.29,"y":1},"o":{"x":0.167,"y":0.167},"t":31.5,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-61,198.075],[-61,239.746]],"c":false}]},{"t":60,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0.006,197.911],[0.006,239.582]],"c":false}]}],"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22,"s":[{"i":[[0,0],[-24.45,0],[0,24.45],[37.879,22.661],[0,24.45],[-24.45,0],[0,-24.45]],"o":[[0,24.45],[24.45,0],[0,-24.45],[-17.82,-10.661],[0,-24.45],[24.45,0],[0,0]],"v":[[-44.265,158.525],[0.006,197.915],[44.277,158.525],[-9.578,102.221],[-44.265,60.2],[0.006,20.831],[44.277,65.102]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25.324,"s":[{"i":[[0,0],[-20.375,0],[0,24.45],[31.566,22.661],[0,24.45],[-20.375,0],[0,-24.45]],"o":[[0,24.45],[20.375,0],[0,-24.45],[-14.85,-10.661],[0,-24.45],[20.375,0],[0,0]],"v":[[-47.054,158.552],[-10.162,197.943],[26.731,158.552],[-18.148,102.248],[-47.054,60.227],[-10.162,20.859],[26.731,65.13]],"c":false}]},{"i":{"x":0.29,"y":1},"o":{"x":0.167,"y":0.167},"t":31.5,"s":[{"i":[[0,0],[0,0],[0,24.45],[0,22.661],[0,24.45],[0,0],[0,-24.45]],"o":[[0,24.45],[0,0],[0,-24.45],[0,-10.661],[0,-24.45],[0,0],[0,0]],"v":[[-60.999,158.689],[-61,198.08],[-61,158.689],[-60.999,102.385],[-60.999,60.364],[-61,20.995],[-61,65.266]],"c":false}]},{"t":60,"s":[{"i":[[0,0],[-24.45,0],[0,24.45],[37.879,22.661],[0,24.45],[-24.45,0],[0,-24.45]],"o":[[0,24.45],[24.45,0],[0,-24.45],[-17.82,-10.661],[0,-24.45],[24.45,0],[0,0]],"v":[[-44.265,158.525],[0.006,197.915],[44.277,158.525],[-9.578,102.221],[-44.265,60.2],[0.006,20.831],[44.277,65.102]],"c":false}]}],"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":3,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":31.3,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[249.998,140.63],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"t":22,"s":[100],"h":1},{"t":31.5,"s":[0],"h":1}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22,"s":[{"i":[[0,-106.43],[106.43,0],[0,106.43],[-106.43,0]],"o":[[0,106.43],[-106.43,0],[0,-106.43],[106.43,0]],"v":[[192.71,109.369],[0.001,302.079],[-192.709,109.369],[0.001,-83.34]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25.324,"s":[{"i":[[0,-106.43],[88.692,0],[0,106.43],[-88.692,0]],"o":[[0,106.43],[-88.692,0],[0,-106.43],[88.692,0]],"v":[[150.425,109.397],[-10.166,302.106],[-170.757,109.397],[-10.166,-83.313]],"c":true}]},{"i":{"x":0.29,"y":1},"o":{"x":0.167,"y":0.167},"t":31.5,"s":[{"i":[[0,-106.43],[-0.001,0],[0,106.43],[0.001,0]],"o":[[0,106.43],[0.001,0],[0,-106.43],[-0.001,0]],"v":[[-61.001,109.534],[-61,302.243],[-60.998,109.534],[-61,-83.176]],"c":true}]},{"t":60,"s":[{"i":[[0,-106.43],[106.43,0],[0,106.43],[-106.43,0]],"o":[[0,106.43],[-106.43,0],[0,-106.43],[106.43,0]],"v":[[192.71,109.369],[0.001,302.079],[-192.709,109.369],[0.001,-83.34]],"c":true}]}],"ix":2},"nm":"Path 4","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":3,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":31.3,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"t":22,"s":[100],"h":1},{"t":25.324,"s":[100],"h":1},{"t":31.5,"s":[50],"h":1}],"ix":2},"o":{"a":0,"k":90,"ix":3},"m":1,"ix":3,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"tr","p":{"a":0,"k":[249.998,140.63],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"fl","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":4,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":1,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false}],"ip":22,"op":60,"st":1,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":".primary.design","cl":"primary design","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[249.998,249.999,0],"ix":2,"l":2},"a":{"a":0,"k":[249.998,249.999,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0,-20.836],[0,20.836]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25.324,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[10.5,-20.836],[10.5,20.836]],"c":false}]},{"i":{"x":0.29,"y":1},"o":{"x":0.167,"y":0.167},"t":31.5,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[63.001,-20.836],[63.001,20.836]],"c":false}]},{"t":60,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0,-20.836],[0,20.836]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0.006,197.911],[0.006,239.582]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25.324,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[10.505,197.911],[10.505,239.582]],"c":false}]},{"i":{"x":0.29,"y":1},"o":{"x":0.167,"y":0.167},"t":31.5,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[63,197.911],[63,239.582]],"c":false}]},{"t":60,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0.006,197.911],[0.006,239.582]],"c":false}]}],"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22,"s":[{"i":[[0,0],[-24.45,0],[0,24.45],[37.879,22.661],[0,24.45],[-24.45,0],[0,-24.45]],"o":[[0,24.45],[24.45,0],[0,-24.45],[-17.82,-10.661],[0,-24.45],[24.45,0],[0,0]],"v":[[-44.265,158.525],[0.006,197.915],[44.277,158.525],[-9.578,102.221],[-44.265,60.2],[0.006,20.831],[44.277,65.102]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25.324,"s":[{"i":[[0,0],[-20.375,0],[0,24.45],[31.566,22.661],[0,24.45],[-20.375,0],[0,-24.45]],"o":[[0,24.45],[20.375,0],[0,-24.45],[-14.85,-10.661],[0,-24.45],[20.375,0],[0,0]],"v":[[-26.387,158.525],[10.505,197.915],[47.397,158.525],[2.519,102.221],[-26.387,60.2],[10.505,20.831],[47.397,65.102]],"c":false}]},{"i":{"x":0.29,"y":1},"o":{"x":0.167,"y":0.167},"t":31.5,"s":[{"i":[[0,0],[0,0],[0,24.45],[0,22.661],[0,24.45],[0,0],[0,-24.45]],"o":[[0,24.45],[0,0],[0,-24.45],[0,-10.661],[0,-24.45],[0,0],[0,0]],"v":[[63.001,158.525],[63,197.915],[63,158.525],[63.001,102.221],[63.001,60.2],[63,20.831],[63,65.102]],"c":false}]},{"t":60,"s":[{"i":[[0,0],[-24.45,0],[0,24.45],[37.879,22.661],[0,24.45],[-24.45,0],[0,-24.45]],"o":[[0,24.45],[24.45,0],[0,-24.45],[-17.82,-10.661],[0,-24.45],[24.45,0],[0,0]],"v":[[-44.265,158.525],[0.006,197.915],[44.277,158.525],[-9.578,102.221],[-44.265,60.2],[0.006,20.831],[44.277,65.102]],"c":false}]}],"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":3,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":31.3,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[249.998,140.63],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"t":22,"s":[0],"h":1},{"t":25.324,"s":[0],"h":1},{"t":31.5,"s":[100],"h":1}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22,"s":[{"i":[[0,-106.43],[106.43,0],[0,106.43],[-106.43,0]],"o":[[0,106.43],[-106.43,0],[0,-106.43],[106.43,0]],"v":[[192.71,109.369],[0.001,302.079],[-192.709,109.369],[0.001,-83.34]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25.324,"s":[{"i":[[0,-106.43],[88.692,0],[0,106.43],[-88.692,0]],"o":[[0,106.43],[-88.692,0],[0,-106.43],[88.692,0]],"v":[[171.091,109.369],[10.501,302.079],[-150.09,109.369],[10.501,-83.34]],"c":true}]},{"i":{"x":0.29,"y":1},"o":{"x":0.167,"y":0.167},"t":31.5,"s":[{"i":[[0,-106.43],[-0.001,0],[0,106.43],[0.001,0]],"o":[[0,106.43],[0.001,0],[0,-106.43],[-0.001,0]],"v":[[62.999,109.369],[63,302.079],[63.002,109.369],[63,-83.34]],"c":true}]},{"t":60,"s":[{"i":[[0,-106.43],[106.43,0],[0,106.43],[-106.43,0]],"o":[[0,106.43],[-106.43,0],[0,-106.43],[106.43,0]],"v":[[192.71,109.369],[0.001,302.079],[-192.709,109.369],[0.001,-83.34]],"c":true}]}],"ix":2},"nm":"Path 4","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":3,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":31.3,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[249.998,140.63],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"t":22,"s":[50],"h":1},{"t":25.324,"s":[50],"h":1},{"t":31.5,"s":[100],"h":1}],"ix":2},"o":{"a":0,"k":-90,"ix":3},"m":1,"ix":3,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"gr","it":[{"ty":"fl","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":4,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":1,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false}],"ip":22,"op":60,"st":1,"bm":0},{"ddd":0,"ind":15,"ty":4,"nm":".primary.design","cl":"primary design","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[249.998,249.999,0],"ix":2,"l":2},"a":{"a":0,"k":[249.998,249.999,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-13.186,0.025],[-0.025,0],[-0.022,0],[0,-15.761],[-8.644,0],[0,8.643],[25.476,6.899],[0,0],[8.644,0],[0,-8.643],[0,0],[0,-26.851],[-16.456,-9.535],[-1.805,-1.08],[0,0],[0,-14.091],[13.187,-0.023],[0.025,0],[0.025,0],[0,17.49],[8.644,0],[0,-8.643],[-26.389,-5.847],[0,0],[-8.644,0],[0,8.643],[0,0],[0,26.864],[11.729,11.188],[19.101,11.424],[0,0],[1.892,1.096],[0,12.245]],"o":[[0.025,0],[0.022,0],[15.753,0.033],[0,8.643],[8.644,0],[0,-27.629],[0,0],[0,-8.643],[-8.644,0],[0,0],[-26.386,5.846],[0,30.906],[1.768,1.024],[0,0],[37.853,22.64],[0,17.49],[-0.025,0],[-0.025,0],[-13.187,-0.023],[0,-8.643],[-8.644,0],[0,26.864],[0,0],[0,8.643],[8.644,0],[0,0],[26.389,-5.847],[0,-15.958],[-9.731,-9.283],[0,0],[-1.932,-1.155],[-15.848,-9.183],[0,-17.472]],"v":[[-0.079,-72.891],[-0.005,-72.888],[0.061,-72.891],[28.621,-44.271],[44.271,-28.621],[59.921,-44.271],[15.645,-102.107],[15.645,-130.209],[-0.005,-145.859],[-15.656,-130.209],[-15.656,-102.519],[-59.921,-49.174],[-22.985,3.135],[-17.618,6.278],[-15.969,7.264],[28.621,49.151],[0.075,72.891],[0,72.887],[-0.074,72.891],[-28.621,49.151],[-44.271,33.501],[-59.921,49.151],[-15.65,102.519],[-15.65,130.209],[0,145.859],[15.651,130.209],[15.651,102.519],[59.921,49.151],[42.73,9.364],[0.097,-19.598],[-1.548,-20.583],[-7.292,-23.947],[-28.621,-49.174]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":4,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[250.003,250.003],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[97.631,0],[0,97.631],[-97.631,0],[0,-97.631]],"o":[[-97.631,0],[0,-97.631],[97.631,0],[0,97.631]],"v":[[0,177.059],[-177.059,0],[0,-177.059],[177.059,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[114.89,0],[0,-114.89],[-114.89,0],[0,114.89]],"o":[[-114.89,0],[0,114.89],[114.89,0],[0,-114.89]],"v":[[0,-208.359],[-208.359,0],[0,208.359],[208.359,0]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":4,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[249.998,249.999],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":3,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"st","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":3,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":1,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1,"st":-60,"bm":0},{"ddd":0,"ind":16,"ty":4,"nm":".primary.design","cl":"primary design","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[249.998,249.999,0],"ix":2,"l":2},"a":{"a":0,"k":[249.998,249.999,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-13.186,0.025],[-0.025,0],[-0.022,0],[0,-15.761],[-8.644,0],[0,8.643],[25.476,6.899],[0,0],[8.644,0],[0,-8.643],[0,0],[0,-26.851],[-16.456,-9.535],[-1.805,-1.08],[0,0],[0,-14.091],[13.187,-0.023],[0.025,0],[0.025,0],[0,17.49],[8.644,0],[0,-8.643],[-26.389,-5.847],[0,0],[-8.644,0],[0,8.643],[0,0],[0,26.864],[11.729,11.188],[19.101,11.424],[0,0],[1.892,1.096],[0,12.245]],"o":[[0.025,0],[0.022,0],[15.753,0.033],[0,8.643],[8.644,0],[0,-27.629],[0,0],[0,-8.643],[-8.644,0],[0,0],[-26.386,5.846],[0,30.906],[1.768,1.024],[0,0],[37.853,22.64],[0,17.49],[-0.025,0],[-0.025,0],[-13.187,-0.023],[0,-8.643],[-8.644,0],[0,26.864],[0,0],[0,8.643],[8.644,0],[0,0],[26.389,-5.847],[0,-15.958],[-9.731,-9.283],[0,0],[-1.932,-1.155],[-15.848,-9.183],[0,-17.472]],"v":[[-0.079,-72.891],[-0.005,-72.888],[0.061,-72.891],[28.621,-44.271],[44.271,-28.621],[59.921,-44.271],[15.645,-102.107],[15.645,-130.209],[-0.005,-145.859],[-15.656,-130.209],[-15.656,-102.519],[-59.921,-49.174],[-22.985,3.135],[-17.618,6.278],[-15.969,7.264],[28.621,49.151],[0.075,72.891],[0,72.887],[-0.074,72.891],[-28.621,49.151],[-44.271,33.501],[-59.921,49.151],[-15.65,102.519],[-15.65,130.209],[0,145.859],[15.651,130.209],[15.651,102.519],[59.921,49.151],[42.73,9.364],[0.097,-19.598],[-1.548,-20.583],[-7.292,-23.947],[-28.621,-49.174]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":4,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[250.003,250.003],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[97.631,0],[0,97.631],[-97.631,0],[0,-97.631]],"o":[[-97.631,0],[0,-97.631],[97.631,0],[0,97.631]],"v":[[0,177.059],[-177.059,0],[0,-177.059],[177.059,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[114.89,0],[0,-114.89],[-114.89,0],[0,114.89]],"o":[[-114.89,0],[0,114.89],[114.89,0],[0,-114.89]],"v":[[0,-208.359],[-208.359,0],[0,208.359],[208.359,0]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":4,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[249.998,249.999],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":3,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"st","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":3,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":1,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false}],"ip":60,"op":300,"st":0,"bm":0}]},{"id":"comp_2","nm":"loop-coin","fr":60,"layers":[{"ddd":0,"ind":1,"ty":4,"nm":".primary.design","cl":"primary design","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[250.75,442.5,0],"to":[0,0.018,0],"ti":[0,-0.087,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[250.75,442.667,0],"to":[0,0.287,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[250.75,443.5,0],"to":[0,0,0],"ti":[0,0.287,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":50,"s":[250.75,442.667,0],"to":[0,-0.087,0],"ti":[0,0.018,0]},{"t":60,"s":[250.75,442.5,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0.75,-195,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[1,-195],[0.5,-195]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-9.417,-195],[10.917,-195]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-61.5,-195],[63,-195]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":50,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-9.417,-195],[10.917,-195]],"c":false}]},{"t":60,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[1,-195],[0.5,-195]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":3,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":31.3,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":4,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":170,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":".primary.design","cl":"primary design","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250.75,347,0],"ix":2,"l":2},"a":{"a":0,"k":[0.75,-195,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[167.25,-195],[167.25,-195]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[129.125,-195],[149.875,-195]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-61.5,-195],[63,-195]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":50,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-149.208,-195],[-128.458,-195]],"c":false}]},{"t":60,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-166.75,-195],[-166.75,-195]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":3,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":31.3,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":4,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":170,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":".primary.design","cl":"primary design","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250.75,153.5,0],"ix":2,"l":2},"a":{"a":0,"k":[0.75,-195,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[167.25,-195],[167.25,-195]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[129.125,-195],[149.875,-195]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-61.5,-195],[63,-195]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":50,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-149.208,-195],[-128.458,-195]],"c":false}]},{"t":60,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-166.75,-195],[-166.75,-195]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":3,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":31.3,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":4,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":170,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":".primary.design","cl":"primary design","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250.75,250.5,0],"ix":2,"l":2},"a":{"a":0,"k":[0.75,-195,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[193.25,-195],[193.25,-195]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[150.792,-195],[171.542,-195]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-61.5,-195],[63,-195]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":50,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-170.875,-195],[-150.125,-195]],"c":false}]},{"t":60,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-192.75,-195],[-192.75,-195]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":3,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":31.3,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":4,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":170,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":".primary.design","cl":"primary design","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[250.75,57.5,0],"to":[0,-0.018,0],"ti":[0,0.087,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[250.75,57.333,0],"to":[0,-0.287,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[250.75,56.5,0],"to":[0,0,0],"ti":[0,-0.287,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":50,"s":[250.75,57.333,0],"to":[0,0.087,0],"ti":[0,-0.018,0]},{"t":60,"s":[250.75,57.5,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0.75,-195,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[1,-195],[0.5,-195]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-9.417,-195],[10.917,-195]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-61.5,-195],[63,-195]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":50,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-9.417,-195],[10.917,-195]],"c":false}]},{"t":60,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[1,-195],[0.5,-195]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":3,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":31.3,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":4,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":170,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":".primary.design","cl":"primary design","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[249.998,249.999,0],"ix":2,"l":2},"a":{"a":0,"k":[249.998,249.999,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0,-20.836],[0,20.836]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-10.167,-20.808],[-10.167,20.863]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-60.999,-20.671],[-60.999,21]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":50,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-10.167,-20.808],[-10.167,20.863]],"c":false}]},{"t":60,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0,-20.836],[0,20.836]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0.006,197.911],[0.006,239.582]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-10.162,197.938],[-10.162,239.61]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-61,198.075],[-61,239.746]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":50,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-10.162,197.938],[-10.162,239.61]],"c":false}]},{"t":60,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0.006,197.911],[0.006,239.582]],"c":false}]}],"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[-24.45,0],[0,24.45],[37.879,22.661],[0,24.45],[-24.45,0],[0,-24.45]],"o":[[0,24.45],[24.45,0],[0,-24.45],[-17.82,-10.661],[0,-24.45],[24.45,0],[0,0]],"v":[[-44.265,158.525],[0.006,197.915],[44.277,158.525],[-9.578,102.221],[-44.265,60.2],[0.006,20.831],[44.277,65.102]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[0,0],[-20.375,0],[0,24.45],[31.566,22.661],[0,24.45],[-20.375,0],[0,-24.45]],"o":[[0,24.45],[20.375,0],[0,-24.45],[-14.85,-10.661],[0,-24.45],[20.375,0],[0,0]],"v":[[-47.054,158.552],[-10.162,197.943],[26.731,158.552],[-18.148,102.248],[-47.054,60.227],[-10.162,20.859],[26.731,65.13]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0,0],[0,0],[0,24.45],[0,22.661],[0,24.45],[0,0],[0,-24.45]],"o":[[0,24.45],[0,0],[0,-24.45],[0,-10.661],[0,-24.45],[0,0],[0,0]],"v":[[-60.999,158.689],[-61,198.08],[-61,158.689],[-60.999,102.385],[-60.999,60.364],[-61,20.995],[-61,65.266]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":50,"s":[{"i":[[0,0],[-20.375,0],[0,24.45],[31.566,22.661],[0,24.45],[-20.375,0],[0,-24.45]],"o":[[0,24.45],[20.375,0],[0,-24.45],[-14.85,-10.661],[0,-24.45],[20.375,0],[0,0]],"v":[[-47.054,158.552],[-10.162,197.943],[26.731,158.552],[-18.148,102.248],[-47.054,60.227],[-10.162,20.859],[26.731,65.13]],"c":false}]},{"t":60,"s":[{"i":[[0,0],[-24.45,0],[0,24.45],[37.879,22.661],[0,24.45],[-24.45,0],[0,-24.45]],"o":[[0,24.45],[24.45,0],[0,-24.45],[-17.82,-10.661],[0,-24.45],[24.45,0],[0,0]],"v":[[-44.265,158.525],[0.006,197.915],[44.277,158.525],[-9.578,102.221],[-44.265,60.2],[0.006,20.831],[44.277,65.102]],"c":false}]}],"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":3,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":31.3,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[249.998,140.63],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"t":0,"s":[100],"h":1},{"t":30,"s":[0],"h":1}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,-106.43],[106.43,0],[0,106.43],[-106.43,0]],"o":[[0,106.43],[-106.43,0],[0,-106.43],[106.43,0]],"v":[[192.71,109.369],[0.001,302.079],[-192.709,109.369],[0.001,-83.34]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[0,-106.43],[88.692,0],[0,106.43],[-88.692,0]],"o":[[0,106.43],[-88.692,0],[0,-106.43],[88.692,0]],"v":[[150.425,109.397],[-10.166,302.106],[-170.757,109.397],[-10.166,-83.313]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0,-106.43],[-0.001,0],[0,106.43],[0.001,0]],"o":[[0,106.43],[0.001,0],[0,-106.43],[-0.001,0]],"v":[[-61.001,109.534],[-61,302.243],[-60.998,109.534],[-61,-83.176]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":50,"s":[{"i":[[0,-106.43],[88.692,0],[0,106.43],[-88.692,0]],"o":[[0,106.43],[-88.692,0],[0,-106.43],[88.692,0]],"v":[[150.425,109.397],[-10.166,302.106],[-170.757,109.397],[-10.166,-83.313]],"c":true}]},{"t":60,"s":[{"i":[[0,-106.43],[106.43,0],[0,106.43],[-106.43,0]],"o":[[0,106.43],[-106.43,0],[0,-106.43],[106.43,0]],"v":[[192.71,109.369],[0.001,302.079],[-192.709,109.369],[0.001,-83.34]],"c":true}]}],"ix":2},"nm":"Path 4","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":3,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":31.3,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"t":0,"s":[100],"h":1},{"t":10,"s":[100],"h":1},{"t":30,"s":[50],"h":1},{"t":50,"s":[50],"h":1}],"ix":2},"o":{"a":0,"k":90,"ix":3},"m":1,"ix":3,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"tr","p":{"a":0,"k":[249.998,140.63],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"fl","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":4,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":1,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":170,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":".primary.design","cl":"primary design","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[249.998,249.999,0],"ix":2,"l":2},"a":{"a":0,"k":[249.998,249.999,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0,-20.836],[0,20.836]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[10.5,-20.836],[10.5,20.836]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[63.001,-20.836],[63.001,20.836]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":50,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[10.5,-20.836],[10.5,20.836]],"c":false}]},{"t":60,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0,-20.836],[0,20.836]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0.006,197.911],[0.006,239.582]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[10.505,197.911],[10.505,239.582]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[63,197.911],[63,239.582]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":50,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[10.505,197.911],[10.505,239.582]],"c":false}]},{"t":60,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0.006,197.911],[0.006,239.582]],"c":false}]}],"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,0],[-24.45,0],[0,24.45],[37.879,22.661],[0,24.45],[-24.45,0],[0,-24.45]],"o":[[0,24.45],[24.45,0],[0,-24.45],[-17.82,-10.661],[0,-24.45],[24.45,0],[0,0]],"v":[[-44.265,158.525],[0.006,197.915],[44.277,158.525],[-9.578,102.221],[-44.265,60.2],[0.006,20.831],[44.277,65.102]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[0,0],[-20.375,0],[0,24.45],[31.566,22.661],[0,24.45],[-20.375,0],[0,-24.45]],"o":[[0,24.45],[20.375,0],[0,-24.45],[-14.85,-10.661],[0,-24.45],[20.375,0],[0,0]],"v":[[-26.387,158.525],[10.505,197.915],[47.397,158.525],[2.519,102.221],[-26.387,60.2],[10.505,20.831],[47.397,65.102]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0,0],[0,0],[0,24.45],[0,22.661],[0,24.45],[0,0],[0,-24.45]],"o":[[0,24.45],[0,0],[0,-24.45],[0,-10.661],[0,-24.45],[0,0],[0,0]],"v":[[63.001,158.525],[63,197.915],[63,158.525],[63.001,102.221],[63.001,60.2],[63,20.831],[63,65.102]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":50,"s":[{"i":[[0,0],[-20.375,0],[0,24.45],[31.566,22.661],[0,24.45],[-20.375,0],[0,-24.45]],"o":[[0,24.45],[20.375,0],[0,-24.45],[-14.85,-10.661],[0,-24.45],[20.375,0],[0,0]],"v":[[-26.387,158.525],[10.505,197.915],[47.397,158.525],[2.519,102.221],[-26.387,60.2],[10.505,20.831],[47.397,65.102]],"c":false}]},{"t":60,"s":[{"i":[[0,0],[-24.45,0],[0,24.45],[37.879,22.661],[0,24.45],[-24.45,0],[0,-24.45]],"o":[[0,24.45],[24.45,0],[0,-24.45],[-17.82,-10.661],[0,-24.45],[24.45,0],[0,0]],"v":[[-44.265,158.525],[0.006,197.915],[44.277,158.525],[-9.578,102.221],[-44.265,60.2],[0.006,20.831],[44.277,65.102]],"c":false}]}],"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":3,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":31.3,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[249.998,140.63],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"t":0,"s":[0],"h":1},{"t":10,"s":[0],"h":1},{"t":30,"s":[100],"h":1},{"t":50,"s":[100],"h":1}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[{"i":[[0,-106.43],[106.43,0],[0,106.43],[-106.43,0]],"o":[[0,106.43],[-106.43,0],[0,-106.43],[106.43,0]],"v":[[192.71,109.369],[0.001,302.079],[-192.709,109.369],[0.001,-83.34]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[0,-106.43],[88.692,0],[0,106.43],[-88.692,0]],"o":[[0,106.43],[-88.692,0],[0,-106.43],[88.692,0]],"v":[[171.091,109.369],[10.501,302.079],[-150.09,109.369],[10.501,-83.34]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0,-106.43],[-0.001,0],[0,106.43],[0.001,0]],"o":[[0,106.43],[0.001,0],[0,-106.43],[-0.001,0]],"v":[[62.999,109.369],[63,302.079],[63.002,109.369],[63,-83.34]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":50,"s":[{"i":[[0,-106.43],[88.692,0],[0,106.43],[-88.692,0]],"o":[[0,106.43],[-88.692,0],[0,-106.43],[88.692,0]],"v":[[171.091,109.369],[10.501,302.079],[-150.09,109.369],[10.501,-83.34]],"c":true}]},{"t":60,"s":[{"i":[[0,-106.43],[106.43,0],[0,106.43],[-106.43,0]],"o":[[0,106.43],[-106.43,0],[0,-106.43],[106.43,0]],"v":[[192.71,109.369],[0.001,302.079],[-192.709,109.369],[0.001,-83.34]],"c":true}]}],"ix":2},"nm":"Path 4","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":3,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":31.3,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[249.998,140.63],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"t":0,"s":[50],"h":1},{"t":10,"s":[50],"h":1},{"t":30,"s":[100],"h":1},{"t":50,"s":[100],"h":1}],"ix":2},"o":{"a":0,"k":-90,"ix":3},"m":1,"ix":3,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"gr","it":[{"ty":"fl","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":4,"x":"var $bm_rt;\n$bm_rt = comp('103-coin-cash-monetization-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":1,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":170,"st":0,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"lordicon.com Outlines","cl":"com","sr":1,"ks":{"o":{"a":0,"k":20,"ix":11,"x":"var $bm_rt;\nvar checkbox = thisComp.layer('02092020').effect('02092020002')('Checkbox');\nif (checkbox == 1) {\n $bm_rt = 20;\n} else {\n $bm_rt = 0;\n}\n;"},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[249.934,481.369,0],"ix":2,"l":2},"a":{"a":0,"k":[79.934,0.369,0],"ix":1,"l":2},"s":{"a":0,"k":[265.159,265.159,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[1.415,0],[11.014,0],[11.014,-2.523],[4.656,-2.523],[4.656,-14.809],[1.415,-14.809]],"c":true},"ix":2},"nm":"l","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"l","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-3.938],[-1.62,-1.723],[-1.949,0],[-1.641,1.846],[0,2.154],[1.579,1.805],[1.579,0]],"o":[[0,1.354],[1.354,1.415],[1.231,0],[1.21,-1.354],[0,-1.456],[-1.456,-1.641],[-5.333,0]],"v":[[11.167,-7.199],[12.992,-1.661],[18.243,0.369],[23.514,-1.743],[25.381,-7.548],[23.494,-13.127],[18.284,-15.137]],"c":true},"ix":2},"nm":"o","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,1.415],[-0.841,1.026],[-1.19,0],[-0.615,-1.825],[0,-0.718],[0.492,-0.738],[1.292,0],[0.451,0.615]],"o":[[0,-1.682],[0.595,-0.759],[1.518,0],[0.308,0.902],[0,2.359],[-0.595,0.923],[-1.477,0],[-0.882,-1.149]],"v":[[14.49,-7.302],[15.577,-11.609],[18.305,-12.86],[21.689,-10.235],[22.058,-7.589],[21.053,-3.343],[18.284,-1.969],[15.597,-3.159]],"c":true},"ix":2},"nm":"o","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"o","np":5,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[-0.287,-0.841],[-0.144,-0.82],[0,0],[0.164,0.656],[0.226,1.743],[2.236,0.205],[0,2.769],[0.923,0.8],[1.641,-0.021],[0,0]],"o":[[0,0],[0,0],[0,0],[0.533,0],[0.205,0.574],[0,0],[-0.164,-0.246],[-0.103,-0.41],[-0.267,-1.928],[0.718,-0.205],[0,-0.964],[-1.19,-1.026],[0,0],[0,0]],"v":[[27.381,0],[30.622,0],[30.622,-5.989],[33.411,-5.989],[35.011,-5.148],[35.811,0],[39.318,0],[38.867,-1.067],[38.416,-3.938],[35.749,-7.343],[38.847,-10.973],[37.554,-13.824],[33.063,-14.829],[27.381,-14.829]],"c":true},"ix":2},"nm":"r","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-0.492,-0.349],[0,-1.005],[0.226,-0.164],[0.369,0],[0,0]],"o":[[0,0],[1.005,0],[0.287,0.185],[0,1.046],[-0.513,0.41],[0,0],[0,0]],"v":[[30.519,-12.491],[32.652,-12.491],[34.744,-12.142],[35.524,-10.481],[34.703,-8.758],[33.083,-8.348],[30.519,-8.348]],"c":true},"ix":2},"nm":"r","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"r","np":5,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-0.554,0.103],[0,4.553],[1.866,1.374],[0.82,0],[0,0]],"o":[[0,0],[1.497,0],[2.81,-0.513],[0,-2.113],[-1.784,-1.313],[0,0],[0,0]],"v":[[41.068,0],[45.683,0],[48.349,-0.164],[53.6,-7.609],[51.077,-13.434],[45.97,-14.768],[41.068,-14.788]],"c":true},"ix":2},"nm":"d","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[-0.656,-0.185],[0,-2.092],[1.251,-1.251],[1.354,0],[0.349,0.021]],"o":[[1.825,-0.082],[1.99,0.554],[0,0.718],[-0.923,0.923],[-0.369,0],[0,0]],"v":[[44.288,-12.388],[47.611,-12.183],[50.318,-7.609],[48.985,-3.425],[45.539,-2.4],[44.288,-2.441]],"c":true},"ix":2},"nm":"d","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"d","np":5,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[55.669,0],[58.849,0],[58.849,-14.87],[55.669,-14.87]],"c":true},"ix":2},"nm":"i","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"i","np":3,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[3.241,0],[0,-4.697],[-5.107,0],[-1.313,1.354],[-0.062,0.882],[0,0],[1.333,0],[0,0.882],[-2.359,0],[-0.062,-0.513]],"o":[[0,-2.954],[-4.164,0],[0,3.671],[1.354,0],[1.19,-1.231],[0,0],[-0.062,1.969],[-3.097,0],[0,-3.056],[2.154,0],[0,0]],"v":[[73.104,-9.989],[67.587,-14.911],[60.798,-7.097],[67.566,0.349],[71.894,-1.313],[73.227,-4.799],[69.884,-4.799],[67.218,-1.99],[64.121,-7.076],[67.464,-12.593],[69.864,-9.989]],"c":true},"ix":2},"nm":"c","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"c","np":3,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-3.938],[-1.62,-1.723],[-1.949,0],[-1.641,1.846],[0,2.154],[1.579,1.805],[1.579,0]],"o":[[0,1.354],[1.354,1.415],[1.231,0],[1.21,-1.354],[0,-1.456],[-1.456,-1.641],[-5.333,0]],"v":[[74.546,-7.199],[76.372,-1.661],[81.622,0.369],[86.894,-1.743],[88.76,-7.548],[86.873,-13.127],[81.663,-15.137]],"c":true},"ix":2},"nm":"o","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,1.415],[-0.841,1.026],[-1.19,0],[-0.615,-1.825],[0,-0.718],[0.492,-0.738],[1.292,0],[0.451,0.615]],"o":[[0,-1.682],[0.595,-0.759],[1.518,0],[0.308,0.902],[0,2.359],[-0.595,0.923],[-1.477,0],[-0.882,-1.149]],"v":[[77.869,-7.302],[78.956,-11.609],[81.684,-12.86],[85.068,-10.235],[85.437,-7.589],[84.432,-3.343],[81.663,-1.969],[78.977,-3.159]],"c":true},"ix":2},"nm":"o","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"o","np":5,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[91.007,0],[94.001,0],[94.001,-12.306],[99.744,0],[104.113,0],[104.113,-14.829],[101.159,-14.829],[101.159,-3.159],[95.601,-14.829],[91.007,-14.829]],"c":true},"ix":2},"nm":"n","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"n","np":3,"cix":2,"bm":0,"ix":8,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[106.893,0],[109.497,0],[109.497,-2.728],[106.893,-2.728]],"c":true},"ix":2},"nm":".","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":".","np":3,"cix":2,"bm":0,"ix":9,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[3.241,0],[0,-4.697],[-5.107,0],[-1.313,1.354],[-0.062,0.882],[0,0],[1.333,0],[0,0.882],[-2.359,0],[-0.062,-0.513]],"o":[[0,-2.954],[-4.164,0],[0,3.671],[1.354,0],[1.19,-1.231],[0,0],[-0.062,1.969],[-3.097,0],[0,-3.056],[2.154,0],[0,0]],"v":[[124.04,-9.989],[118.523,-14.911],[111.734,-7.097],[118.502,0.349],[122.83,-1.313],[124.163,-4.799],[120.82,-4.799],[118.154,-1.99],[115.057,-7.076],[118.4,-12.593],[120.8,-9.989]],"c":true},"ix":2},"nm":"c","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"c","np":3,"cix":2,"bm":0,"ix":10,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-3.938],[-1.62,-1.723],[-1.949,0],[-1.641,1.846],[0,2.154],[1.579,1.805],[1.579,0]],"o":[[0,1.354],[1.354,1.415],[1.231,0],[1.21,-1.354],[0,-1.456],[-1.456,-1.641],[-5.333,0]],"v":[[125.482,-7.199],[127.308,-1.661],[132.558,0.369],[137.829,-1.743],[139.696,-7.548],[137.809,-13.127],[132.599,-15.137]],"c":true},"ix":2},"nm":"o","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,1.415],[-0.841,1.026],[-1.19,0],[-0.615,-1.825],[0,-0.718],[0.492,-0.738],[1.292,0],[0.451,0.615]],"o":[[0,-1.682],[0.595,-0.759],[1.518,0],[0.308,0.902],[0,2.359],[-0.595,0.923],[-1.477,0],[-0.882,-1.149]],"v":[[128.805,-7.302],[129.892,-11.609],[132.62,-12.86],[136.004,-10.235],[136.373,-7.589],[135.368,-3.343],[132.599,-1.969],[129.912,-3.159]],"c":true},"ix":2},"nm":"o","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"o","np":5,"cix":2,"bm":0,"ix":11,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[141.696,0],[144.67,0],[144.67,-12.716],[148.629,0],[151.254,0],[155.295,-12.716],[155.295,0],[158.453,0],[158.453,-14.829],[153.408,-14.829],[150.024,-4.041],[146.885,-14.829],[141.696,-14.829]],"c":true},"ix":2},"nm":"m","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"m","np":3,"cix":2,"bm":0,"ix":12,"mn":"ADBE Vector Group","hd":false}],"ip":2.5,"op":25,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":3,"nm":"02092020","sr":1,"ks":{"o":{"a":0,"k":0,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-105,15,0],"ix":2,"l":2},"a":{"a":0,"k":[60,60,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"ef":[{"ty":5,"nm":"02092020002","np":3,"mn":"ADBE Checkbox Control","ix":1,"en":1,"ef":[{"ty":7,"nm":"Checkbox","mn":"ADBE Checkbox Control-0001","ix":1,"v":{"a":0,"k":0,"ix":1}}]}],"ip":0,"op":300,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":3,"nm":"Color & Stroke Change","sr":1,"ks":{"o":{"a":0,"k":0,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-55,-102,0],"ix":2,"l":2,"x":"var $bm_rt;\n$bm_rt = effect('Axis')('Point');"},"a":{"a":0,"k":[50,50,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2,"x":"var $bm_rt;\nvar temp;\ntemp = effect('Scale')('Slider');\n$bm_rt = [\n temp,\n temp\n];"}},"ao":0,"ef":[{"ty":5,"nm":"Primary","np":3,"mn":"ADBE Color Control","ix":1,"en":1,"ef":[{"ty":2,"nm":"Color","mn":"ADBE Color Control-0001","ix":1,"v":{"a":0,"k":[1,1,1],"ix":1}}]},{"ty":5,"nm":"Axis","np":3,"mn":"ADBE Point Control","ix":2,"en":1,"ef":[{"ty":3,"nm":"Point","mn":"ADBE Point Control-0001","ix":1,"v":{"a":0,"k":[250,250],"ix":1}}]},{"ty":5,"nm":"Scale","np":3,"mn":"ADBE Slider Control","ix":3,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":100,"ix":1}}]},{"ty":5,"nm":"State-Intro","np":3,"mn":"ADBE Slider Control","ix":4,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":0,"ix":1}}]},{"ty":5,"nm":"State-Hover","np":3,"mn":"ADBE Slider Control","ix":5,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":1,"ix":1}}]},{"ty":5,"nm":"State-Loop","np":3,"mn":"ADBE Slider Control","ix":6,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":0,"ix":1}}]}],"ip":0,"op":300,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":0,"nm":"in-coin","parent":3,"refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11,"x":"var $bm_rt;\n$bm_rt = $bm_mul(thisComp.layer('Color & Stroke Change').effect('State-Intro')('Slider'), 100);"},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[50,50,0],"ix":2,"l":2},"a":{"a":0,"k":[250,250,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"w":500,"h":500,"ip":0,"op":71,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":0,"nm":"hover-coin","parent":3,"refId":"comp_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11,"x":"var $bm_rt;\n$bm_rt = $bm_mul(thisComp.layer('Color & Stroke Change').effect('State-Hover')('Slider'), 100);"},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[50,50,0],"ix":2,"l":2},"a":{"a":0,"k":[250,250,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"w":500,"h":500,"ip":0,"op":71,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":0,"nm":"loop-coin","parent":3,"refId":"comp_2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11,"x":"var $bm_rt;\n$bm_rt = $bm_mul(thisComp.layer('Color & Stroke Change').effect('State-Loop')('Slider'), 100);"},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[50,50,0],"ix":2,"l":2},"a":{"a":0,"k":[250,250,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"w":500,"h":500,"ip":0,"op":71,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/frontend/public/lotties/system-outline-165-view-carousel.json b/frontend/public/lotties/system-outline-165-view-carousel.json new file mode 100644 index 000000000..9cbde6944 --- /dev/null +++ b/frontend/public/lotties/system-outline-165-view-carousel.json @@ -0,0 +1 @@ +{"v":"5.8.1","fr":60,"ip":0,"op":61,"w":500,"h":500,"nm":"165-view-carousel-outline","ddd":0,"assets":[{"id":"comp_0","nm":"in-carousel","fr":60,"layers":[{"ddd":0,"ind":1,"ty":4,"nm":".primary.design","cl":"primary design","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[2.856,0],[0,0],[0,0],[0,0],[0,-2.856]],"o":[[0,2.862],[0,0],[0,0],[0,0],[2.856,0],[0,0]],"v":[[177.06,88.542],[171.88,93.732],[125.028,93.732],[125.028,-93.718],[171.88,-93.718],[177.06,-88.538]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[2.858,0],[0,0],[0,2.858],[0,0],[0,0.013],[0,0.013],[0,0],[0,0.013],[0,0.013],[0,0],[-2.858,0],[0,0],[0,-2.858]],"o":[[0,2.858],[0,0],[-2.858,0],[0,0],[0,-0.013],[0,-0.013],[0,0],[0,-0.013],[0,-0.013],[0,0],[0,-2.858],[0,0],[2.858,0],[0,0]],"v":[[93.728,130.212],[88.544,135.395],[-88.538,135.395],[-93.722,130.212],[-93.722,109.421],[-93.72,109.382],[-93.722,109.343],[-93.722,-109.329],[-93.72,-109.368],[-93.722,-109.407],[-93.722,-130.206],[-88.538,-135.39],[88.544,-135.39],[93.728,-130.206]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[0,0],[0,2.862],[0,0],[-2.861,0],[0,0],[0,0]],"o":[[-2.861,0],[0,0],[0,-2.856],[0,0],[0,0],[0,0]],"v":[[-171.87,93.732],[-177.06,88.542],[-177.06,-88.538],[-171.87,-93.718],[-125.022,-93.718],[-125.022,93.732]],"c":true},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ind":3,"ty":"sh","ix":4,"ks":{"a":0,"k":{"i":[[20.115,0],[0,0],[0,0],[20.117,0],[0,0],[0,-20.117],[0,0],[0,0],[0,-20.115],[0,0],[-20.12,0],[0,0],[0,0],[-20.117,0],[0,0],[0,20.117],[0,0],[0,0],[0,20.121],[0,0]],"o":[[0,0],[0,0],[0,-20.117],[0,0],[-20.117,0],[0,0],[0,0],[-20.12,0],[0,0],[0,20.121],[0,0],[0,0],[0,20.117],[0,0],[20.117,0],[0,0],[0,0],[20.115,0],[0,0],[0,-20.115]],"v":[[171.88,-125.018],[125.028,-125.018],[125.028,-130.206],[88.544,-166.69],[-88.538,-166.69],[-125.022,-130.206],[-125.022,-125.018],[-171.87,-125.018],[-208.36,-88.538],[-208.36,88.542],[-171.87,125.032],[-125.022,125.032],[-125.022,130.212],[-88.538,166.695],[88.544,166.695],[125.028,130.212],[125.028,125.032],[171.88,125.032],[208.36,88.542],[208.36,-88.538]],"c":true},"ix":2},"nm":"Path 4","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":4,"x":"var $bm_rt;\n$bm_rt = comp('165-view-carousel-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":5,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":47,"op":300,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":".primary.design","cl":"primary design","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250.003,250.003,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.17,"y":1},"o":{"x":0.167,"y":0.167},"t":1,"s":[{"i":[[11.506,0],[0,0],[0,-11.506],[0,0],[-11.506,0],[0,0],[0,11.505],[0,0]],"o":[[0,0],[-11.506,0],[0,0],[0,11.505],[0,0],[11.506,0],[0,0],[0,-11.506]],"v":[[0.007,-5.179],[-0.007,-5.179],[-20.841,15.655],[-20.841,183.184],[-0.007,204.018],[0.007,204.018],[20.841,183.184],[20.841,15.655]],"c":true}]},{"t":30,"s":[{"i":[[11.506,0],[0,0],[0,-11.506],[0,0],[-11.506,0],[0,0],[0,11.505],[0,0]],"o":[[0,0],[-11.506,0],[0,0],[0,11.505],[0,0],[11.506,0],[0,0],[0,-11.506]],"v":[[88.541,-151.042],[-88.541,-151.042],[-109.375,-130.209],[-109.375,130.209],[-88.541,151.042],[88.541,151.042],[109.375,130.209],[109.375,-130.209]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":3,"x":"var $bm_rt;\n$bm_rt = comp('165-view-carousel-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":31.3,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":1,"op":47,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":".primary.design","cl":"primary design","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[158.997,250.003,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[-100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.17,"y":1},"o":{"x":0.167,"y":0.167},"t":1,"s":[{"i":[[11.506,0],[0,0],[0,-11.506],[0,0],[-11.506,0],[0,0],[0,11.505],[0,0]],"o":[[0,0],[-11.506,0],[0,0],[0,11.505],[0,0],[11.506,0],[0,0],[0,-11.506]],"v":[[-92.066,-3.857],[-92.368,-3.749],[-113.202,17.084],[-113.454,185.46],[-92.621,206.293],[-92.319,206.186],[-71.485,185.352],[-71.233,16.976]],"c":true}]},{"t":47,"s":[{"i":[[11.506,0],[0,0],[0,-11.506],[0,0],[-11.506,0],[0,0],[0,11.505],[0,0]],"o":[[0,0],[-11.506,0],[0,0],[0,11.505],[0,0],[11.506,0],[0,0],[0,-11.506]],"v":[[81.291,-108.915],[-33.291,-108.915],[-54.125,-88.081],[-54.125,89.003],[-33.291,109.836],[81.291,109.836],[102.125,89.003],[102.125,-88.081]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":3,"x":"var $bm_rt;\n$bm_rt = comp('165-view-carousel-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":31.3,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.688],"y":[0.857]},"o":{"x":[0.364],"y":[0.014]},"t":7,"s":[21]},{"i":{"x":[0.618],"y":[0.11]},"o":{"x":[0.323],"y":[0.82]},"t":9,"s":[25.025]},{"i":{"x":[0.576],"y":[0.802]},"o":{"x":[0.263],"y":[0.837]},"t":13,"s":[26.481]},{"i":{"x":[0.462],"y":[1]},"o":{"x":[0.176],"y":[-0.167]},"t":18,"s":[27.812]},{"t":47,"s":[24]}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.17],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":7,"s":[63]},{"t":47,"s":[74]}],"ix":2},"o":{"a":0,"k":122,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":7,"op":47,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":".primary.design","cl":"primary design","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[364.587,250.003,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.17,"y":1},"o":{"x":0.167,"y":0.167},"t":1,"s":[{"i":[[11.506,0],[0,0],[0,-11.506],[0,0],[-11.506,0],[0,0],[0,11.505],[0,0]],"o":[[0,0],[-11.506,0],[0,0],[0,11.505],[0,0],[11.506,0],[0,0],[0,-11.506]],"v":[[-114.066,-3.901],[-114.368,-3.793],[-135.202,17.041],[-135.454,185.417],[-114.621,206.25],[-114.319,206.142],[-93.485,185.309],[-93.233,16.933]],"c":true}]},{"t":47,"s":[{"i":[[11.506,0],[0,0],[0,-11.506],[0,0],[-11.506,0],[0,0],[0,11.505],[0,0]],"o":[[0,0],[-11.506,0],[0,0],[0,11.505],[0,0],[11.506,0],[0,0],[0,-11.506]],"v":[[57.291,-109.376],[-57.291,-109.376],[-78.125,-88.542],[-78.125,88.542],[-57.291,109.376],[57.291,109.376],[78.125,88.542],[78.125,-88.542]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":3,"x":"var $bm_rt;\n$bm_rt = comp('165-view-carousel-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":31.3,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.688],"y":[0.815]},"o":{"x":[0.364],"y":[0.028]},"t":7,"s":[19]},{"i":{"x":[0.618],"y":[0.54]},"o":{"x":[0.323],"y":[0.627]},"t":9,"s":[23.609]},{"i":{"x":[0.576],"y":[3.937]},"o":{"x":[0.263],"y":[-5.335]},"t":13,"s":[26.437]},{"i":{"x":[0.462],"y":[1]},"o":{"x":[0.176],"y":[-6.536]},"t":18,"s":[26.227]},{"t":47,"s":[26]}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.17],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":7,"s":[62]},{"t":47,"s":[74]}],"ix":2},"o":{"a":0,"k":121,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":7,"op":47,"st":0,"bm":0}]},{"id":"comp_1","nm":"hover-carousel","fr":60,"layers":[{"ddd":0,"ind":1,"ty":4,"nm":".primary.design","cl":"primary design","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[2.856,0],[0,0],[0,0],[0,0],[0,-2.856]],"o":[[0,2.862],[0,0],[0,0],[0,0],[2.856,0],[0,0]],"v":[[177.06,88.542],[171.88,93.732],[125.028,93.732],[125.028,-93.718],[171.88,-93.718],[177.06,-88.538]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[2.858,0],[0,0],[0,2.858],[0,0],[0,0.013],[0,0.013],[0,0],[0,0.013],[0,0.013],[0,0],[-2.858,0],[0,0],[0,-2.858]],"o":[[0,2.858],[0,0],[-2.858,0],[0,0],[0,-0.013],[0,-0.013],[0,0],[0,-0.013],[0,-0.013],[0,0],[0,-2.858],[0,0],[2.858,0],[0,0]],"v":[[93.728,130.212],[88.544,135.395],[-88.538,135.395],[-93.722,130.212],[-93.722,109.421],[-93.72,109.382],[-93.722,109.343],[-93.722,-109.329],[-93.72,-109.368],[-93.722,-109.407],[-93.722,-130.206],[-88.538,-135.39],[88.544,-135.39],[93.728,-130.206]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[0,0],[0,2.862],[0,0],[-2.861,0],[0,0],[0,0]],"o":[[-2.861,0],[0,0],[0,-2.856],[0,0],[0,0],[0,0]],"v":[[-171.87,93.732],[-177.06,88.542],[-177.06,-88.538],[-171.87,-93.718],[-125.022,-93.718],[-125.022,93.732]],"c":true},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ind":3,"ty":"sh","ix":4,"ks":{"a":0,"k":{"i":[[20.115,0],[0,0],[0,0],[20.117,0],[0,0],[0,-20.117],[0,0],[0,0],[0,-20.115],[0,0],[-20.12,0],[0,0],[0,0],[-20.117,0],[0,0],[0,20.117],[0,0],[0,0],[0,20.121],[0,0]],"o":[[0,0],[0,0],[0,-20.117],[0,0],[-20.117,0],[0,0],[0,0],[-20.12,0],[0,0],[0,20.121],[0,0],[0,0],[0,20.117],[0,0],[20.117,0],[0,0],[0,0],[20.115,0],[0,0],[0,-20.115]],"v":[[171.88,-125.018],[125.028,-125.018],[125.028,-130.206],[88.544,-166.69],[-88.538,-166.69],[-125.022,-130.206],[-125.022,-125.018],[-171.87,-125.018],[-208.36,-88.538],[-208.36,88.542],[-171.87,125.032],[-125.022,125.032],[-125.022,130.212],[-88.538,166.695],[88.544,166.695],[125.028,130.212],[125.028,125.032],[171.88,125.032],[208.36,88.542],[208.36,-88.538]],"c":true},"ix":2},"nm":"Path 4","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":4,"x":"var $bm_rt;\n$bm_rt = comp('165-view-carousel-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":5,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"st","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":3,"x":"var $bm_rt;\n$bm_rt = comp('165-view-carousel-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":1,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":55,"op":300,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":".primary.design","cl":"primary design","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[2.856,0],[0,0],[0,0],[0,0],[0,-2.856]],"o":[[0,2.862],[0,0],[0,0],[0,0],[2.856,0],[0,0]],"v":[[177.06,88.542],[171.88,93.732],[125.028,93.732],[125.028,-93.718],[171.88,-93.718],[177.06,-88.538]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[2.858,0],[0,0],[0,2.858],[0,0],[0,0.013],[0,0.013],[0,0],[0,0.013],[0,0.013],[0,0],[-2.858,0],[0,0],[0,-2.858]],"o":[[0,2.858],[0,0],[-2.858,0],[0,0],[0,-0.013],[0,-0.013],[0,0],[0,-0.013],[0,-0.013],[0,0],[0,-2.858],[0,0],[2.858,0],[0,0]],"v":[[93.728,130.212],[88.544,135.395],[-88.538,135.395],[-93.722,130.212],[-93.722,109.421],[-93.72,109.382],[-93.722,109.343],[-93.722,-109.329],[-93.72,-109.368],[-93.722,-109.407],[-93.722,-130.206],[-88.538,-135.39],[88.544,-135.39],[93.728,-130.206]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[0,0],[0,2.862],[0,0],[-2.861,0],[0,0],[0,0]],"o":[[-2.861,0],[0,0],[0,-2.856],[0,0],[0,0],[0,0]],"v":[[-171.87,93.732],[-177.06,88.542],[-177.06,-88.538],[-171.87,-93.718],[-125.022,-93.718],[-125.022,93.732]],"c":true},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ind":3,"ty":"sh","ix":4,"ks":{"a":0,"k":{"i":[[20.115,0],[0,0],[0,0],[20.117,0],[0,0],[0,-20.117],[0,0],[0,0],[0,-20.115],[0,0],[-20.12,0],[0,0],[0,0],[-20.117,0],[0,0],[0,20.117],[0,0],[0,0],[0,20.121],[0,0]],"o":[[0,0],[0,0],[0,-20.117],[0,0],[-20.117,0],[0,0],[0,0],[-20.12,0],[0,0],[0,20.121],[0,0],[0,0],[0,20.117],[0,0],[20.117,0],[0,0],[0,0],[20.115,0],[0,0],[0,-20.115]],"v":[[171.88,-125.018],[125.028,-125.018],[125.028,-130.206],[88.544,-166.69],[-88.538,-166.69],[-125.022,-130.206],[-125.022,-125.018],[-171.87,-125.018],[-208.36,-88.538],[-208.36,88.542],[-171.87,125.032],[-125.022,125.032],[-125.022,130.212],[-88.538,166.695],[88.544,166.695],[125.028,130.212],[125.028,125.032],[171.88,125.032],[208.36,88.542],[208.36,-88.538]],"c":true},"ix":2},"nm":"Path 4","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":4,"x":"var $bm_rt;\n$bm_rt = comp('165-view-carousel-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":5,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"st","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":3,"x":"var $bm_rt;\n$bm_rt = comp('165-view-carousel-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":1,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":".primary.design","cl":"primary design","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.77,"y":0},"t":1,"s":[158.997,250.003,0],"to":[-11.333,0,0],"ti":[-15.167,0,0]},{"i":{"x":0.159,"y":1},"o":{"x":0.407,"y":0},"t":17,"s":[90.997,250.003,0],"to":[7.313,0,0],"ti":[-13.722,0,0]},{"t":55,"s":[249.997,250.003,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[-100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"t":1,"s":[{"i":[[11.506,0],[0,0],[0,0],[3.77,-3.77],[0,-5.753],[0,0],[-11.506,0],[0,0],[0,11.505],[0,0]],"o":[[0,0],[0,0],[-5.753,0],[-3.77,3.77],[0,0],[0,11.505],[0,0],[11.506,0],[0,0],[0,-11.506]],"v":[[81.291,-108.915],[24,-108.915],[-33.291,-108.915],[-48.023,-102.813],[-54.125,-88.081],[-54.125,89.003],[-33.291,109.836],[81.291,109.836],[102.125,89.003],[102.125,-88.081]],"c":true}],"h":1},{"i":{"x":0.833,"y":0.859},"o":{"x":0.333,"y":0},"t":2.18,"s":[{"i":[[-10.5,0],[-33,0],[0,0],[0,-11.506],[0,0],[10.599,-0.506],[31.5,0],[0,0],[0,9.674],[0,0]],"o":[[0,0],[30.33,0],[14.039,-0.421],[0,0],[0,11.505],[0,0],[-32,0],[-10,-0.837],[0,0],[0,-9.675]],"v":[[-34.003,-109.325],[18.497,-109.489],[79.459,-109.409],[100.997,-87.576],[100.997,88.342],[80.898,109.181],[18.497,109.193],[-34.503,109.76],[-55.503,92.484],[-55.503,-91.976]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.141},"t":4.539,"s":[{"i":[[-10.707,0.102],[-33.475,1.617],[0,0],[0,-11.506],[0,0],[11.602,0.847],[31.916,1.156],[0,0],[0,9.674],[0,0]],"o":[[0,0],[30.272,-1.173],[14.232,-0.984],[0,0],[0,11.505],[0,0],[-32.538,-0.824],[-10.206,-0.926],[0,0],[0,-9.675]],"v":[[-32.567,-109.991],[23.211,-112.208],[83.578,-115.094],[105.014,-93.835],[105.196,92.407],[84.952,115.024],[22.77,112.067],[-33.068,110.27],[-53.988,92.985],[-53.988,-92.637]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":8,"s":[{"i":[[-11.32,0.404],[-29.19,6.404],[0,0],[0,-11.506],[0,0],[12.597,4.854],[27.72,4.58],[0,0],[0,9.673],[0,0]],"o":[[0,0],[24.953,-4.645],[12.385,-2.651],[0,0],[0,11.505],[0,0],[-28.6,-3.263],[-10.817,-1.188],[0,0],[0,-9.675]],"v":[[-28.317,-111.962],[31.476,-120.26],[79.82,-131.925],[97.307,-112.367],[97.997,104.443],[80.768,132.323],[29.803,120.575],[-28.819,111.778],[-49.503,94.468],[-49.503,-94.593]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":11,"s":[{"i":[[-9.013,0.807],[-17.317,12.809],[0,0],[0,-11.506],[0,0],[11.116,10.214],[16.283,9.16],[0,0],[0,9.673],[0,0]],"o":[[0,0],[12.683,-9.289],[7.31,-4.881],[0,0],[0,11.505],[0,0],[-17.3,-6.527],[-8.646,-1.539],[0,0],[0,-9.675]],"v":[[7.243,-114.557],[57.814,-130.99],[80.187,-154.399],[88.793,-137.117],[89.982,120.584],[80.382,155.507],[54.93,131.999],[6.876,113.837],[-10.503,96.493],[-10.503,-97.168]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15,"s":[{"i":[[-7.525,1.615],[-1.633,25.617],[0,0],[0,-11.506],[0,0],[-6.935,3.293],[1.067,18.321],[0,0],[0,9.674],[0,0]],"o":[[0,0],[-9.023,-16.317],[-6.728,1.014],[0,0],[0,11.505],[0,0],[-2.6,-13.053],[-7.292,-2.239],[0,0],[0,-9.675]],"v":[[0.489,-118.579],[59.13,-154.283],[32.725,-168.179],[22.399,-155.812],[24.967,153.672],[41.432,165.042],[58.93,144.014],[0.256,119.124],[-13.503,101.711],[-13.503,-101.15]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":19.873,"s":[{"i":[[-6.038,2.422],[8.3,17.524],[0,0],[0,-11.506],[0,0],[-6.249,-3.706],[-24.4,30.92],[0,0],[0,9.674],[0,0]],"o":[[0,0],[-28.7,-24.476],[-7.161,4.779],[0,0],[0,11.505],[0,0],[12.1,-19.58],[-5.938,-2.94],[0,0],[0,-9.675]],"v":[[25.735,-123.553],[61.197,-154.527],[-29.141,-161.911],[-41.9,-139.278],[-36.9,138.74],[-24.654,160.375],[60.897,155.077],[25.635,123.459],[15.497,105.977],[15.497,-106.084]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22,"s":[{"i":[[-4.922,3.028],[15.827,9.377],[0,0],[0,-11.506],[0,0],[-10.461,-4.506],[-34,22.494],[0,0],[0,9.674],[0,0]],"o":[[0,0],[-37,-21.921],[-12.461,6.079],[0,0],[0,11.505],[0,0],[24.637,-16.3],[-4.922,-3.466],[0,0],[0,-9.675]],"v":[[42.419,-127.031],[57.997,-160.082],[-64.541,-153.082],[-85.875,-130.248],[-85.875,130.169],[-65.541,152.003],[54.497,161.003],[42.419,126.963],[34.997,109.43],[34.997,-109.531]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":24,"s":[{"i":[[-1.776,2.595],[23.373,8.037],[0,0],[0,-11.506],[0,0],[-10.611,-3.862],[-41.925,18.346],[0,0],[0,9.935],[0,0]],"o":[[0,0],[-44.2,-18.355],[-12.325,5.211],[0,0],[0,11.505],[0,0],[31.73,-13.971],[-1.776,-2.971],[0,0],[0,-9.936]],"v":[[58.47,-130.461],[59.054,-159.208],[-67.97,-152.791],[-89.232,-130.243],[-89.232,130.175],[-68.827,151.866],[56.422,159.163],[58.47,130.403],[56.711,112.398],[56.711,-112.485]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":31,"s":[{"i":[[6.089,1.514],[42.238,4.688],[0,0],[0,-11.506],[0,0],[-10.984,-2.253],[-61.736,7.974],[0,0],[0,10.589],[0,0]],"o":[[0,0],[-62.199,-9.441],[-11.984,3.04],[0,0],[0,11.505],[0,0],[49.46,-8.15],[6.089,-1.733],[0,0],[0,-10.591]],"v":[[98.595,-139.037],[30.196,-155.562],[-76.541,-152.062],[-97.625,-130.229],[-97.625,130.189],[-77.041,151.523],[29.733,156.023],[98.595,139.003],[110.997,119.819],[110.997,-119.87]],"c":true}]},{"i":{"x":0.25,"y":1},"o":{"x":0.167,"y":0.167},"t":34.428,"s":[{"i":[[8.754,0.899],[38.858,0.619],[0,0],[0,-11.506],[0,0],[-11.208,-1.286],[-49.166,1.112],[0,0],[0,11.425],[0,0]],"o":[[0,0],[-47.257,-0.753],[-11.779,1.735],[0,0],[0,11.505],[0,0],[44.834,-0.888],[8.754,-1.029],[0,0],[0,-11.427]],"v":[[93.957,-150.003],[16.803,-153.622],[-81.693,-151.624],[-102.669,-130.22],[-102.669,130.198],[-81.978,151.316],[17.827,153.885],[93.957,149.984],[110.624,129.29],[110.624,-129.319]],"c":true}]},{"t":47.28515625,"s":[{"i":[[11.506,0],[29.848,0],[0,0],[0,-11.506],[0,0],[-11.506,0],[-30.18,0],[0,0],[0,11.505],[0,0]],"o":[[0,0],[-29.179,0],[-11.506,0],[0,0],[0,11.505],[0,0],[28.848,0],[11.506,0],[0,0],[0,-11.506]],"v":[[88.541,-151.042],[-1.003,-151.042],[-88.541,-151.042],[-109.375,-130.209],[-109.375,130.209],[-88.541,151.042],[1.997,151.042],[88.541,151.042],[109.375,130.209],[109.375,-130.209]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":3,"x":"var $bm_rt;\n$bm_rt = comp('165-view-carousel-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":31.3,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"t":1,"s":[24],"h":1},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":3,"s":[24]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":7,"s":[17]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":8,"s":[15]},{"t":9,"s":[0]}],"ix":1},"e":{"a":1,"k":[{"t":1,"s":[74],"h":1},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":3,"s":[74]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":7,"s":[83]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":8,"s":[85]},{"t":9,"s":[100]}],"ix":2},"o":{"a":1,"k":[{"t":1,"s":[122],"h":1},{"t":3,"s":[302],"h":1}],"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"gr","it":[{"ty":"fl","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":4,"x":"var $bm_rt;\n$bm_rt = comp('165-view-carousel-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":1,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false}],"ip":29,"op":55,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":".primary.design","cl":"primary design","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":1,"s":[250.003,250.003,0],"to":[19.333,0,0],"ti":[-19.333,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0.333},"t":17.514,"s":[366.003,250.003,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.23,"y":1},"o":{"x":0.167,"y":0.167},"t":30.486,"s":[366.003,250.003,0],"to":[-4.167,0,0],"ti":[4.167,0,0]},{"t":47,"s":[341.003,250.003,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[0,-11.506],[0,0]],"o":[[0,0],[0,11.505]],"v":[[71.259,-144.472],[71.259,140.945]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":17,"s":[{"i":[[0,-11.506],[0,0]],"o":[[0,0],[0,11.505]],"v":[[63.259,-151.942],[64.259,148.476]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25,"s":[{"i":[[0,-11.506],[0,0]],"o":[[0,0],[0,11.505]],"v":[[63.259,-151.942],[61.259,148.476]],"c":false}]},{"t":28,"s":[{"i":[[0,-11.506],[0,0]],"o":[[0,0],[0,11.505]],"v":[[48.259,-151.881],[51.259,147.537]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":3,"x":"var $bm_rt;\n$bm_rt = comp('165-view-carousel-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":31.3,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"gr","it":[{"ty":"fl","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":4,"x":"var $bm_rt;\n$bm_rt = comp('165-view-carousel-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":1,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false}],"ip":13,"op":29,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":".primary.design","cl":"primary design","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":1,"s":[250.003,250.003,0],"to":[19.333,0,0],"ti":[-19.333,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0.333},"t":17.514,"s":[366.003,250.003,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.23,"y":1},"o":{"x":0.167,"y":0.167},"t":30.486,"s":[366.003,250.003,0],"to":[-4.167,0,0],"ti":[4.167,0,0]},{"t":47,"s":[341.003,250.003,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":1,"s":[{"i":[[11.506,0],[29.848,0],[0,0],[0,-11.506],[0,0],[-11.506,0],[-30.18,0],[0,0],[0,11.505],[0,0]],"o":[[0,0],[-29.179,0],[-11.506,0],[0,0],[0,11.505],[0,0],[28.848,0],[11.506,0],[0,0],[0,-11.506]],"v":[[88.541,-151.042],[-1.003,-151.042],[-88.541,-151.042],[-109.375,-130.209],[-109.375,130.209],[-88.541,151.042],[1.997,151.042],[88.541,151.042],[109.375,130.209],[109.375,-130.209]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6.896,"s":[{"i":[[7.637,1.081],[38.698,3.349],[0,0],[0,-11.506],[0,0],[-11.133,-1.609],[-52.72,5.696],[0,0],[0,10.851],[0,0]],"o":[[0,0],[-52.765,-6.743],[-11.848,2.171],[0,0],[0,11.505],[0,0],[43.571,-5.821],[7.637,-1.238],[0,0],[0,-10.852]],"v":[[106.723,-142.676],[20.996,-159.271],[-79.97,-151.771],[-100.982,-130.223],[-100.982,130.195],[-80.327,151.385],[22.05,158.6],[106.723,142.233],[121.534,122.578],[121.534,-123.033]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":9.256,"s":[{"i":[[6.089,1.514],[42.238,4.688],[0,0],[0,-11.506],[0,0],[-10.984,-2.253],[-61.736,7.974],[0,0],[0,10.589],[0,0]],"o":[[0,0],[-62.199,-9.441],[-11.984,3.04],[0,0],[0,11.505],[0,0],[49.46,-8.15],[6.089,-1.733],[0,0],[0,-10.591]],"v":[[98.595,-139.037],[30.196,-155.562],[-76.541,-152.062],[-97.625,-130.229],[-97.625,130.189],[-77.041,151.523],[29.733,156.023],[98.595,139.003],[110.997,119.819],[110.997,-119.87]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15.154,"s":[{"i":[[-1.776,2.595],[23.373,8.037],[0,0],[0,-11.506],[0,0],[-10.611,-3.862],[-41.925,18.346],[0,0],[0,9.935],[0,0]],"o":[[0,0],[-44.2,-18.355],[-12.325,5.211],[0,0],[0,11.505],[0,0],[31.73,-13.971],[-1.776,-2.971],[0,0],[0,-9.936]],"v":[[58.47,-130.461],[59.054,-159.208],[-67.97,-152.791],[-89.232,-130.243],[-89.232,130.175],[-68.827,151.866],[56.422,159.163],[58.47,130.403],[56.711,112.398],[56.711,-112.485]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":17.514,"s":[{"i":[[-4.922,3.028],[15.827,9.377],[0,0],[0,-11.506],[0,0],[-10.461,-4.506],[-34,22.494],[0,0],[0,9.674],[0,0]],"o":[[0,0],[-37,-21.921],[-12.461,6.079],[0,0],[0,11.505],[0,0],[24.637,-16.3],[-4.922,-3.466],[0,0],[0,-9.675]],"v":[[42.419,-127.031],[57.997,-160.082],[-64.541,-153.082],[-85.875,-130.248],[-85.875,130.169],[-65.541,152.003],[54.497,161.003],[42.419,126.963],[34.997,109.43],[34.997,-109.531]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21.051,"s":[{"i":[[-6.038,2.422],[8.3,17.524],[0,0],[0,-11.506],[0,0],[-6.249,-3.706],[-24.4,30.92],[0,0],[0,9.674],[0,0]],"o":[[0,0],[-28.7,-24.476],[-7.161,4.779],[0,0],[0,11.505],[0,0],[12.1,-19.58],[-5.938,-2.94],[0,0],[0,-9.675]],"v":[[25.735,-123.553],[61.197,-154.527],[-29.141,-161.911],[-41.9,-139.278],[-36.9,138.74],[-24.654,160.375],[60.897,155.077],[25.635,123.459],[15.497,105.977],[15.497,-106.084]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25.77,"s":[{"i":[[-7.525,1.615],[-1.633,25.617],[0,0],[0,-11.506],[0,0],[-6.935,3.293],[1.067,18.321],[0,0],[0,9.674],[0,0]],"o":[[0,0],[-9.023,-16.317],[-6.728,1.014],[0,0],[0,11.505],[0,0],[-2.6,-13.053],[-7.292,-2.239],[0,0],[0,-9.675]],"v":[[3.489,-118.917],[62.13,-154.62],[35.725,-168.517],[25.399,-156.15],[27.967,153.335],[44.432,164.704],[61.93,143.676],[3.256,118.787],[-10.503,101.373],[-10.503,-101.487]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30.486,"s":[{"i":[[-9.013,0.807],[-17.317,12.809],[0,0],[0,-11.506],[0,0],[11.116,10.214],[16.283,9.16],[0,0],[0,9.673],[0,0]],"o":[[0,0],[12.683,-9.289],[7.31,-4.881],[0,0],[0,11.505],[0,0],[-17.3,-6.527],[-8.646,-1.539],[0,0],[0,-9.675]],"v":[[-18.757,-114.28],[31.814,-130.714],[54.187,-154.122],[62.793,-136.84],[63.982,120.861],[54.382,155.784],[28.93,132.276],[-19.124,114.114],[-36.503,96.77],[-36.503,-96.891]],"c":true}]},{"i":{"x":0.833,"y":0.859},"o":{"x":0.167,"y":0.167},"t":32.846,"s":[{"i":[[-11.32,0.404],[-29.19,6.404],[0,0],[0,-11.506],[0,0],[12.597,4.854],[27.72,4.58],[0,0],[0,9.673],[0,0]],"o":[[0,0],[24.953,-4.645],[12.385,-2.651],[0,0],[0,11.505],[0,0],[-28.6,-3.263],[-10.817,-1.188],[0,0],[0,-9.675]],"v":[[-28.317,-111.962],[31.476,-120.26],[79.82,-131.925],[97.307,-112.367],[97.997,104.443],[80.768,132.323],[29.803,120.575],[-28.819,111.778],[-49.503,94.468],[-49.503,-94.593]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.141},"t":36.385,"s":[{"i":[[-10.707,0.102],[-33.475,1.617],[0,0],[0,-11.506],[0,0],[11.602,0.847],[31.916,1.156],[0,0],[0,9.674],[0,0]],"o":[[0,0],[30.272,-1.173],[14.232,-0.984],[0,0],[0,11.505],[0,0],[-32.538,-0.824],[-10.206,-0.926],[0,0],[0,-9.675]],"v":[[-32.567,-109.991],[23.211,-112.208],[83.578,-115.094],[105.014,-93.835],[105.196,92.407],[84.952,115.024],[22.77,112.067],[-33.068,110.27],[-53.988,92.985],[-53.988,-92.637]],"c":true}]},{"t":38.744,"s":[{"i":[[-10.5,0],[-33,0],[0,0],[0,-11.506],[0,0],[10.599,-0.506],[31.5,0],[0,0],[0,9.674],[0,0]],"o":[[0,0],[30.33,0],[14.039,-0.421],[0,0],[0,11.505],[0,0],[-32,0],[-10,-0.837],[0,0],[0,-9.675]],"v":[[-34.003,-109.325],[18.497,-109.489],[79.459,-109.409],[100.997,-87.576],[100.997,88.342],[80.898,109.181],[18.497,109.193],[-34.503,109.76],[-55.503,92.484],[-55.503,-91.976]],"c":true}],"h":1},{"t":39.923828125,"s":[{"i":[[11.506,0],[0,0],[0,0],[3.77,-3.77],[0,-5.753],[0,0],[-11.506,0],[0,0],[0,11.505],[0,0]],"o":[[0,0],[0,0],[-5.753,0],[-3.77,3.77],[0,0],[0,11.505],[0,0],[11.506,0],[0,0],[0,-11.506]],"v":[[81.291,-108.915],[24,-108.915],[-33.291,-108.915],[-48.023,-102.813],[-54.125,-88.081],[-54.125,89.003],[-33.291,109.836],[81.291,109.836],[102.125,89.003],[102.125,-88.081]],"c":true}],"h":1}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":3,"x":"var $bm_rt;\n$bm_rt = comp('165-view-carousel-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":31.3,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"t":33,"s":[0],"h":1},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":34,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":39,"s":[5]},{"i":{"x":[0.569],"y":[0.704]},"o":{"x":[0.203],"y":[0.107]},"t":40,"s":[5]},{"i":{"x":[0.703],"y":[1]},"o":{"x":[0.317],"y":[0.743]},"t":45,"s":[8.155]},{"t":55,"s":[10]}],"ix":1},"e":{"a":1,"k":[{"t":33,"s":[100],"h":1},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":34,"s":[68]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":39,"s":[62]},{"i":{"x":[0.569],"y":[0.83]},"o":{"x":[0.203],"y":[0.062]},"t":40,"s":[62]},{"i":{"x":[0.703],"y":[1]},"o":{"x":[0.317],"y":[-2.808]},"t":45,"s":[58.707]},{"t":55,"s":[59]}],"ix":2},"o":{"a":1,"k":[{"t":39,"s":[0],"h":1},{"t":40,"s":[-182],"h":1}],"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"gr","it":[{"ty":"fl","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":4,"x":"var $bm_rt;\n$bm_rt = comp('165-view-carousel-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":1,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false}],"ip":29,"op":55,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":".primary.design","cl":"primary design","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":1,"s":[250.003,250.003,0],"to":[19.333,0,0],"ti":[-19.333,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0.333},"t":17.514,"s":[366.003,250.003,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.23,"y":1},"o":{"x":0.167,"y":0.167},"t":30.486,"s":[366.003,250.003,0],"to":[-4.167,0,0],"ti":[4.167,0,0]},{"t":47,"s":[341.003,250.003,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":1,"s":[{"i":[[11.506,0],[29.848,0],[0,0],[0,-11.506],[0,0],[-11.506,0],[-30.18,0],[0,0],[0,11.505],[0,0]],"o":[[0,0],[-29.179,0],[-11.506,0],[0,0],[0,11.505],[0,0],[28.848,0],[11.506,0],[0,0],[0,-11.506]],"v":[[88.541,-151.042],[-1.003,-151.042],[-88.541,-151.042],[-109.375,-130.209],[-109.375,130.209],[-88.541,151.042],[1.997,151.042],[88.541,151.042],[109.375,130.209],[109.375,-130.209]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":6.896,"s":[{"i":[[7.637,1.081],[38.698,3.349],[0,0],[0,-11.506],[0,0],[-11.133,-1.609],[-52.72,5.696],[0,0],[0,10.851],[0,0]],"o":[[0,0],[-52.765,-6.743],[-11.848,2.171],[0,0],[0,11.505],[0,0],[43.571,-5.821],[7.637,-1.238],[0,0],[0,-10.852]],"v":[[106.723,-142.676],[20.996,-159.271],[-79.97,-151.771],[-100.982,-130.223],[-100.982,130.195],[-80.327,151.385],[22.05,158.6],[106.723,142.233],[121.534,122.578],[121.534,-123.033]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":9.256,"s":[{"i":[[6.089,1.514],[42.238,4.688],[0,0],[0,-11.506],[0,0],[-10.984,-2.253],[-61.736,7.974],[0,0],[0,10.589],[0,0]],"o":[[0,0],[-62.199,-9.441],[-11.984,3.04],[0,0],[0,11.505],[0,0],[49.46,-8.15],[6.089,-1.733],[0,0],[0,-10.591]],"v":[[98.595,-139.037],[30.196,-155.562],[-76.541,-152.062],[-97.625,-130.229],[-97.625,130.189],[-77.041,151.523],[29.733,156.023],[98.595,139.003],[110.997,119.819],[110.997,-119.87]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15.154,"s":[{"i":[[-1.776,2.595],[23.373,8.037],[0,0],[0,-11.506],[0,0],[-10.611,-3.862],[-41.925,18.346],[0,0],[0,9.935],[0,0]],"o":[[0,0],[-44.2,-18.355],[-12.325,5.211],[0,0],[0,11.505],[0,0],[31.73,-13.971],[-1.776,-2.971],[0,0],[0,-9.936]],"v":[[58.47,-130.461],[59.054,-159.208],[-67.97,-152.791],[-89.232,-130.243],[-89.232,130.175],[-68.827,151.866],[56.422,159.163],[58.47,130.403],[56.711,112.398],[56.711,-112.485]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":17.514,"s":[{"i":[[-4.922,3.028],[15.827,9.377],[0,0],[0,-11.506],[0,0],[-10.461,-4.506],[-34,22.494],[0,0],[0,9.674],[0,0]],"o":[[0,0],[-37,-21.921],[-12.461,6.079],[0,0],[0,11.505],[0,0],[24.637,-16.3],[-4.922,-3.466],[0,0],[0,-9.675]],"v":[[42.419,-127.031],[57.997,-160.082],[-64.541,-153.082],[-85.875,-130.248],[-85.875,130.169],[-65.541,152.003],[54.497,161.003],[42.419,126.963],[34.997,109.43],[34.997,-109.531]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21.051,"s":[{"i":[[-6.038,2.422],[8.3,17.524],[0,0],[0,-11.506],[0,0],[-6.249,-3.706],[-24.4,30.92],[0,0],[0,9.674],[0,0]],"o":[[0,0],[-28.7,-24.476],[-7.161,4.779],[0,0],[0,11.505],[0,0],[12.1,-19.58],[-5.938,-2.94],[0,0],[0,-9.675]],"v":[[25.735,-123.553],[61.197,-154.527],[-29.141,-161.911],[-41.9,-139.278],[-36.9,138.74],[-24.654,160.375],[60.897,155.077],[25.635,123.459],[15.497,105.977],[15.497,-106.084]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25.77,"s":[{"i":[[-7.525,1.615],[-1.633,25.617],[0,0],[0,-11.506],[0,0],[-6.935,3.293],[1.067,18.321],[0,0],[0,9.674],[0,0]],"o":[[0,0],[-9.023,-16.317],[-6.728,1.014],[0,0],[0,11.505],[0,0],[-2.6,-13.053],[-7.292,-2.239],[0,0],[0,-9.675]],"v":[[3.489,-118.917],[62.13,-154.62],[35.725,-168.517],[25.399,-156.15],[27.967,153.335],[44.432,164.704],[61.93,143.676],[3.256,118.787],[-10.503,101.373],[-10.503,-101.487]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30.486,"s":[{"i":[[-9.013,0.807],[-17.317,12.809],[0,0],[0,-11.506],[0,0],[11.116,10.214],[16.283,9.16],[0,0],[0,9.673],[0,0]],"o":[[0,0],[12.683,-9.289],[7.31,-4.881],[0,0],[0,11.505],[0,0],[-17.3,-6.527],[-8.646,-1.539],[0,0],[0,-9.675]],"v":[[-18.757,-114.28],[31.814,-130.714],[54.187,-154.122],[62.793,-136.84],[63.982,120.861],[54.382,155.784],[28.93,132.276],[-19.124,114.114],[-36.503,96.77],[-36.503,-96.891]],"c":true}]},{"i":{"x":0.833,"y":0.859},"o":{"x":0.167,"y":0.167},"t":32.846,"s":[{"i":[[-11.32,0.404],[-29.19,6.404],[0,0],[0,-11.506],[0,0],[12.597,4.854],[27.72,4.58],[0,0],[0,9.673],[0,0]],"o":[[0,0],[24.953,-4.645],[12.385,-2.651],[0,0],[0,11.505],[0,0],[-28.6,-3.263],[-10.817,-1.188],[0,0],[0,-9.675]],"v":[[-28.317,-111.962],[31.476,-120.26],[79.82,-131.925],[97.307,-112.367],[97.997,104.443],[80.768,132.323],[29.803,120.575],[-28.819,111.778],[-49.503,94.468],[-49.503,-94.593]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.141},"t":36.385,"s":[{"i":[[-10.707,0.102],[-33.475,1.617],[0,0],[0,-11.506],[0,0],[11.602,0.847],[31.916,1.156],[0,0],[0,9.674],[0,0]],"o":[[0,0],[30.272,-1.173],[14.232,-0.984],[0,0],[0,11.505],[0,0],[-32.538,-0.824],[-10.206,-0.926],[0,0],[0,-9.675]],"v":[[-32.567,-109.991],[23.211,-112.208],[83.578,-115.094],[105.014,-93.835],[105.196,92.407],[84.952,115.024],[22.77,112.067],[-33.068,110.27],[-53.988,92.985],[-53.988,-92.637]],"c":true}]},{"t":38.744,"s":[{"i":[[-10.5,0],[-33,0],[0,0],[0,-11.506],[0,0],[10.599,-0.506],[31.5,0],[0,0],[0,9.674],[0,0]],"o":[[0,0],[30.33,0],[14.039,-0.421],[0,0],[0,11.505],[0,0],[-32,0],[-10,-0.837],[0,0],[0,-9.675]],"v":[[-34.003,-109.325],[18.497,-109.489],[79.459,-109.409],[100.997,-87.576],[100.997,88.342],[80.898,109.181],[18.497,109.193],[-34.503,109.76],[-55.503,92.484],[-55.503,-91.976]],"c":true}],"h":1},{"t":39.923828125,"s":[{"i":[[11.506,0],[0,0],[0,0],[3.77,-3.77],[0,-5.753],[0,0],[-11.506,0],[0,0],[0,11.505],[0,0]],"o":[[0,0],[0,0],[-5.753,0],[-3.77,3.77],[0,0],[0,11.505],[0,0],[11.506,0],[0,0],[0,-11.506]],"v":[[81.291,-108.915],[24,-108.915],[-33.291,-108.915],[-48.023,-102.813],[-54.125,-88.081],[-54.125,89.003],[-33.291,109.836],[81.291,109.836],[102.125,89.003],[102.125,-88.081]],"c":true}],"h":1}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":3,"x":"var $bm_rt;\n$bm_rt = comp('165-view-carousel-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":31.3,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":12,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":13,"s":[2]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":15,"s":[2]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":21,"s":[5]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":25,"s":[8]},{"t":26,"s":[0]}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":12,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":13,"s":[69]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":15,"s":[69]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":21,"s":[65]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":25,"s":[59]},{"t":26,"s":[100]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"gr","it":[{"ty":"fl","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":4,"x":"var $bm_rt;\n$bm_rt = comp('165-view-carousel-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":1,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false}],"ip":1,"op":29,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":".primary.design","cl":"primary design","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.77,"y":0},"t":1,"s":[158.997,250.003,0],"to":[-11.333,0,0],"ti":[-15.167,0,0]},{"i":{"x":0.159,"y":1},"o":{"x":0.407,"y":0},"t":17,"s":[90.997,250.003,0],"to":[7.313,0,0],"ti":[-13.722,0,0]},{"t":55,"s":[249.997,250.003,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[-100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[60.705,-147.133],[60.712,150.416]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[61.705,-148.133],[62.712,149.416]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":24,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[70.455,-148.133],[71.462,142.666]],"c":false}]},{"t":25,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[70.705,-148.133],[71.712,140.416]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":3,"x":"var $bm_rt;\n$bm_rt = comp('165-view-carousel-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":31.3,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"fl","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":4,"x":"var $bm_rt;\n$bm_rt = comp('165-view-carousel-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":1,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":13,"op":26,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":".primary.design","cl":"primary design","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.77,"y":0},"t":1,"s":[158.997,250.003,0],"to":[-11.333,0,0],"ti":[-15.167,0,0]},{"i":{"x":0.159,"y":1},"o":{"x":0.407,"y":0},"t":17,"s":[90.997,250.003,0],"to":[7.313,0,0],"ti":[-13.722,0,0]},{"t":55,"s":[249.997,250.003,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[-100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"t":1,"s":[{"i":[[11.506,0],[0,0],[0,0],[3.77,-3.77],[0,-5.753],[0,0],[-11.506,0],[0,0],[0,11.505],[0,0]],"o":[[0,0],[0,0],[-5.753,0],[-3.77,3.77],[0,0],[0,11.505],[0,0],[11.506,0],[0,0],[0,-11.506]],"v":[[81.291,-108.915],[24,-108.915],[-33.291,-108.915],[-48.023,-102.813],[-54.125,-88.081],[-54.125,89.003],[-33.291,109.836],[81.291,109.836],[102.125,89.003],[102.125,-88.081]],"c":true}],"h":1},{"i":{"x":0.833,"y":0.859},"o":{"x":0.333,"y":0},"t":2.18,"s":[{"i":[[-10.5,0],[-33,0],[0,0],[0,-11.506],[0,0],[10.599,-0.506],[31.5,0],[0,0],[0,9.674],[0,0]],"o":[[0,0],[30.33,0],[14.039,-0.421],[0,0],[0,11.505],[0,0],[-32,0],[-10,-0.837],[0,0],[0,-9.675]],"v":[[-34.003,-109.325],[18.497,-109.489],[79.459,-109.409],[100.997,-87.576],[100.997,88.342],[80.898,109.181],[18.497,109.193],[-34.503,109.76],[-55.503,92.484],[-55.503,-91.976]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.141},"t":4.539,"s":[{"i":[[-10.707,0.102],[-33.475,1.617],[0,0],[0,-11.506],[0,0],[11.602,0.847],[31.916,1.156],[0,0],[0,9.674],[0,0]],"o":[[0,0],[30.272,-1.173],[14.232,-0.984],[0,0],[0,11.505],[0,0],[-32.538,-0.824],[-10.206,-0.926],[0,0],[0,-9.675]],"v":[[-32.567,-109.991],[23.211,-112.208],[83.578,-115.094],[105.014,-93.835],[105.196,92.407],[84.952,115.024],[22.77,112.067],[-33.068,110.27],[-53.988,92.985],[-53.988,-92.637]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":8,"s":[{"i":[[-11.32,0.404],[-29.19,6.404],[0,0],[0,-11.506],[0,0],[12.597,4.854],[27.72,4.58],[0,0],[0,9.673],[0,0]],"o":[[0,0],[24.953,-4.645],[12.385,-2.651],[0,0],[0,11.505],[0,0],[-28.6,-3.263],[-10.817,-1.188],[0,0],[0,-9.675]],"v":[[-28.317,-111.962],[31.476,-120.26],[79.82,-131.925],[97.307,-112.367],[97.997,104.443],[80.768,132.323],[29.803,120.575],[-28.819,111.778],[-49.503,94.468],[-49.503,-94.593]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":11,"s":[{"i":[[-9.013,0.807],[-17.317,12.809],[0,0],[0,-11.506],[0,0],[11.116,10.214],[16.283,9.16],[0,0],[0,9.673],[0,0]],"o":[[0,0],[12.683,-9.289],[7.31,-4.881],[0,0],[0,11.505],[0,0],[-17.3,-6.527],[-8.646,-1.539],[0,0],[0,-9.675]],"v":[[7.243,-114.557],[57.814,-130.99],[80.187,-154.399],[88.793,-137.117],[89.982,120.584],[80.382,155.507],[54.93,131.999],[6.876,113.837],[-10.503,96.493],[-10.503,-97.168]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15,"s":[{"i":[[-7.525,1.615],[-1.633,25.617],[0,0],[0,-11.506],[0,0],[-6.935,3.293],[1.067,18.321],[0,0],[0,9.674],[0,0]],"o":[[0,0],[-9.023,-16.317],[-6.728,1.014],[0,0],[0,11.505],[0,0],[-2.6,-13.053],[-7.292,-2.239],[0,0],[0,-9.675]],"v":[[0.489,-118.579],[59.13,-154.283],[32.725,-168.179],[22.399,-155.812],[24.967,153.672],[41.432,165.042],[58.93,144.014],[0.256,119.124],[-13.503,101.711],[-13.503,-101.15]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":19.873,"s":[{"i":[[-6.038,2.422],[8.3,17.524],[0,0],[0,-11.506],[0,0],[-6.249,-3.706],[-24.4,30.92],[0,0],[0,9.674],[0,0]],"o":[[0,0],[-28.7,-24.476],[-7.161,4.779],[0,0],[0,11.505],[0,0],[12.1,-19.58],[-5.938,-2.94],[0,0],[0,-9.675]],"v":[[25.735,-123.553],[61.197,-154.527],[-29.141,-161.911],[-41.9,-139.278],[-36.9,138.74],[-24.654,160.375],[60.897,155.077],[25.635,123.459],[15.497,105.977],[15.497,-106.084]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22,"s":[{"i":[[-4.922,3.028],[15.827,9.377],[0,0],[0,-11.506],[0,0],[-10.461,-4.506],[-34,22.494],[0,0],[0,9.674],[0,0]],"o":[[0,0],[-37,-21.921],[-12.461,6.079],[0,0],[0,11.505],[0,0],[24.637,-16.3],[-4.922,-3.466],[0,0],[0,-9.675]],"v":[[42.419,-127.031],[57.997,-160.082],[-64.541,-153.082],[-85.875,-130.248],[-85.875,130.169],[-65.541,152.003],[54.497,161.003],[42.419,126.963],[34.997,109.43],[34.997,-109.531]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":24,"s":[{"i":[[-1.776,2.595],[23.373,8.037],[0,0],[0,-11.506],[0,0],[-10.611,-3.862],[-41.925,18.346],[0,0],[0,9.935],[0,0]],"o":[[0,0],[-44.2,-18.355],[-12.325,5.211],[0,0],[0,11.505],[0,0],[31.73,-13.971],[-1.776,-2.971],[0,0],[0,-9.936]],"v":[[58.47,-130.461],[59.054,-159.208],[-67.97,-152.791],[-89.232,-130.243],[-89.232,130.175],[-68.827,151.866],[56.422,159.163],[58.47,130.403],[56.711,112.398],[56.711,-112.485]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":31,"s":[{"i":[[6.089,1.514],[42.238,4.688],[0,0],[0,-11.506],[0,0],[-10.984,-2.253],[-61.736,7.974],[0,0],[0,10.589],[0,0]],"o":[[0,0],[-62.199,-9.441],[-11.984,3.04],[0,0],[0,11.505],[0,0],[49.46,-8.15],[6.089,-1.733],[0,0],[0,-10.591]],"v":[[98.595,-139.037],[30.196,-155.562],[-76.541,-152.062],[-97.625,-130.229],[-97.625,130.189],[-77.041,151.523],[29.733,156.023],[98.595,139.003],[110.997,119.819],[110.997,-119.87]],"c":true}]},{"i":{"x":0.25,"y":1},"o":{"x":0.167,"y":0.167},"t":34.428,"s":[{"i":[[8.754,0.899],[38.858,0.619],[0,0],[0,-11.506],[0,0],[-11.208,-1.286],[-49.166,1.112],[0,0],[0,11.425],[0,0]],"o":[[0,0],[-47.257,-0.753],[-11.779,1.735],[0,0],[0,11.505],[0,0],[44.834,-0.888],[8.754,-1.029],[0,0],[0,-11.427]],"v":[[93.957,-150.003],[16.803,-153.622],[-81.693,-151.624],[-102.669,-130.22],[-102.669,130.198],[-81.978,151.316],[17.827,153.885],[93.957,149.984],[110.624,129.29],[110.624,-129.319]],"c":true}]},{"t":47.28515625,"s":[{"i":[[11.506,0],[29.848,0],[0,0],[0,-11.506],[0,0],[-11.506,0],[-30.18,0],[0,0],[0,11.505],[0,0]],"o":[[0,0],[-29.179,0],[-11.506,0],[0,0],[0,11.505],[0,0],[28.848,0],[11.506,0],[0,0],[0,-11.506]],"v":[[88.541,-151.042],[-1.003,-151.042],[-88.541,-151.042],[-109.375,-130.209],[-109.375,130.209],[-88.541,151.042],[1.997,151.042],[88.541,151.042],[109.375,130.209],[109.375,-130.209]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":3,"x":"var $bm_rt;\n$bm_rt = comp('165-view-carousel-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":31.3,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":13,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":14,"s":[22]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":15,"s":[25]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":22,"s":[20]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":25,"s":[18]},{"t":26,"s":[0]}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":13,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":14,"s":[75]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":15,"s":[75]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":22,"s":[84]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":25,"s":[86]},{"t":26,"s":[100]}],"ix":2},"o":{"a":0,"k":302,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"gr","it":[{"ty":"fl","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":4,"x":"var $bm_rt;\n$bm_rt = comp('165-view-carousel-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":1,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false}],"ip":12,"op":29,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":".primary.design","cl":"primary design","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.77,"y":0},"t":1,"s":[158.997,250.003,0],"to":[-11.333,0,0],"ti":[-15.167,0,0]},{"i":{"x":0.159,"y":1},"o":{"x":0.407,"y":0},"t":17,"s":[90.997,250.003,0],"to":[7.313,0,0],"ti":[-13.722,0,0]},{"t":55,"s":[249.997,250.003,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[-100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"t":1,"s":[{"i":[[11.506,0],[0,0],[0,0],[3.77,-3.77],[0,-5.753],[0,0],[-11.506,0],[0,0],[0,11.505],[0,0]],"o":[[0,0],[0,0],[-5.753,0],[-3.77,3.77],[0,0],[0,11.505],[0,0],[11.506,0],[0,0],[0,-11.506]],"v":[[81.291,-108.915],[24,-108.915],[-33.291,-108.915],[-48.023,-102.813],[-54.125,-88.081],[-54.125,89.003],[-33.291,109.836],[81.291,109.836],[102.125,89.003],[102.125,-88.081]],"c":true}],"h":1},{"i":{"x":0.833,"y":0.859},"o":{"x":0.333,"y":0},"t":2.18,"s":[{"i":[[-10.5,0],[-33,0],[0,0],[0,-11.506],[0,0],[10.599,-0.506],[31.5,0],[0,0],[0,9.674],[0,0]],"o":[[0,0],[30.33,0],[14.039,-0.421],[0,0],[0,11.505],[0,0],[-32,0],[-10,-0.837],[0,0],[0,-9.675]],"v":[[-34.003,-109.325],[18.497,-109.489],[79.459,-109.409],[100.997,-87.576],[100.997,88.342],[80.898,109.181],[18.497,109.193],[-34.503,109.76],[-55.503,92.484],[-55.503,-91.976]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.141},"t":4.539,"s":[{"i":[[-10.707,0.102],[-33.475,1.617],[0,0],[0,-11.506],[0,0],[11.602,0.847],[31.916,1.156],[0,0],[0,9.674],[0,0]],"o":[[0,0],[30.272,-1.173],[14.232,-0.984],[0,0],[0,11.505],[0,0],[-32.538,-0.824],[-10.206,-0.926],[0,0],[0,-9.675]],"v":[[-32.567,-109.991],[23.211,-112.208],[83.578,-115.094],[105.014,-93.835],[105.196,92.407],[84.952,115.024],[22.77,112.067],[-33.068,110.27],[-53.988,92.985],[-53.988,-92.637]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":8,"s":[{"i":[[-11.32,0.404],[-29.19,6.404],[0,0],[0,-11.506],[0,0],[12.597,4.854],[27.72,4.58],[0,0],[0,9.673],[0,0]],"o":[[0,0],[24.953,-4.645],[12.385,-2.651],[0,0],[0,11.505],[0,0],[-28.6,-3.263],[-10.817,-1.188],[0,0],[0,-9.675]],"v":[[-28.317,-111.962],[31.476,-120.26],[79.82,-131.925],[97.307,-112.367],[97.997,104.443],[80.768,132.323],[29.803,120.575],[-28.819,111.778],[-49.503,94.468],[-49.503,-94.593]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":11,"s":[{"i":[[-9.013,0.807],[-17.317,12.809],[0,0],[0,-11.506],[0,0],[11.116,10.214],[16.283,9.16],[0,0],[0,9.673],[0,0]],"o":[[0,0],[12.683,-9.289],[7.31,-4.881],[0,0],[0,11.505],[0,0],[-17.3,-6.527],[-8.646,-1.539],[0,0],[0,-9.675]],"v":[[7.243,-114.557],[57.814,-130.99],[80.187,-154.399],[88.793,-137.117],[89.982,120.584],[80.382,155.507],[54.93,131.999],[6.876,113.837],[-10.503,96.493],[-10.503,-97.168]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15,"s":[{"i":[[-7.525,1.615],[-1.633,25.617],[0,0],[0,-11.506],[0,0],[-6.935,3.293],[1.067,18.321],[0,0],[0,9.674],[0,0]],"o":[[0,0],[-9.023,-16.317],[-6.728,1.014],[0,0],[0,11.505],[0,0],[-2.6,-13.053],[-7.292,-2.239],[0,0],[0,-9.675]],"v":[[0.489,-118.579],[59.13,-154.283],[32.725,-168.179],[22.399,-155.812],[24.967,153.672],[41.432,165.042],[58.93,144.014],[0.256,119.124],[-13.503,101.711],[-13.503,-101.15]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":19.873,"s":[{"i":[[-6.038,2.422],[8.3,17.524],[0,0],[0,-11.506],[0,0],[-6.249,-3.706],[-24.4,30.92],[0,0],[0,9.674],[0,0]],"o":[[0,0],[-28.7,-24.476],[-7.161,4.779],[0,0],[0,11.505],[0,0],[12.1,-19.58],[-5.938,-2.94],[0,0],[0,-9.675]],"v":[[25.735,-123.553],[61.197,-154.527],[-29.141,-161.911],[-41.9,-139.278],[-36.9,138.74],[-24.654,160.375],[60.897,155.077],[25.635,123.459],[15.497,105.977],[15.497,-106.084]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22,"s":[{"i":[[-4.922,3.028],[15.827,9.377],[0,0],[0,-11.506],[0,0],[-10.461,-4.506],[-34,22.494],[0,0],[0,9.674],[0,0]],"o":[[0,0],[-37,-21.921],[-12.461,6.079],[0,0],[0,11.505],[0,0],[24.637,-16.3],[-4.922,-3.466],[0,0],[0,-9.675]],"v":[[42.419,-127.031],[57.997,-160.082],[-64.541,-153.082],[-85.875,-130.248],[-85.875,130.169],[-65.541,152.003],[54.497,161.003],[42.419,126.963],[34.997,109.43],[34.997,-109.531]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":24,"s":[{"i":[[-1.776,2.595],[23.373,8.037],[0,0],[0,-11.506],[0,0],[-10.611,-3.862],[-41.925,18.346],[0,0],[0,9.935],[0,0]],"o":[[0,0],[-44.2,-18.355],[-12.325,5.211],[0,0],[0,11.505],[0,0],[31.73,-13.971],[-1.776,-2.971],[0,0],[0,-9.936]],"v":[[58.47,-130.461],[59.054,-159.208],[-67.97,-152.791],[-89.232,-130.243],[-89.232,130.175],[-68.827,151.866],[56.422,159.163],[58.47,130.403],[56.711,112.398],[56.711,-112.485]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":31,"s":[{"i":[[6.089,1.514],[42.238,4.688],[0,0],[0,-11.506],[0,0],[-10.984,-2.253],[-61.736,7.974],[0,0],[0,10.589],[0,0]],"o":[[0,0],[-62.199,-9.441],[-11.984,3.04],[0,0],[0,11.505],[0,0],[49.46,-8.15],[6.089,-1.733],[0,0],[0,-10.591]],"v":[[98.595,-139.037],[30.196,-155.562],[-76.541,-152.062],[-97.625,-130.229],[-97.625,130.189],[-77.041,151.523],[29.733,156.023],[98.595,139.003],[110.997,119.819],[110.997,-119.87]],"c":true}]},{"i":{"x":0.25,"y":1},"o":{"x":0.167,"y":0.167},"t":34.428,"s":[{"i":[[8.754,0.899],[38.858,0.619],[0,0],[0,-11.506],[0,0],[-11.208,-1.286],[-49.166,1.112],[0,0],[0,11.425],[0,0]],"o":[[0,0],[-47.257,-0.753],[-11.779,1.735],[0,0],[0,11.505],[0,0],[44.834,-0.888],[8.754,-1.029],[0,0],[0,-11.427]],"v":[[93.957,-150.003],[16.803,-153.622],[-81.693,-151.624],[-102.669,-130.22],[-102.669,130.198],[-81.978,151.316],[17.827,153.885],[93.957,149.984],[110.624,129.29],[110.624,-129.319]],"c":true}]},{"t":47.28515625,"s":[{"i":[[11.506,0],[29.848,0],[0,0],[0,-11.506],[0,0],[-11.506,0],[-30.18,0],[0,0],[0,11.505],[0,0]],"o":[[0,0],[-29.179,0],[-11.506,0],[0,0],[0,11.505],[0,0],[28.848,0],[11.506,0],[0,0],[0,-11.506]],"v":[[88.541,-151.042],[-1.003,-151.042],[-88.541,-151.042],[-109.375,-130.209],[-109.375,130.209],[-88.541,151.042],[1.997,151.042],[88.541,151.042],[109.375,130.209],[109.375,-130.209]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":3,"x":"var $bm_rt;\n$bm_rt = comp('165-view-carousel-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":31.3,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"t":1,"s":[24],"h":1},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":3,"s":[24]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":7,"s":[17]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":8,"s":[15]},{"t":9,"s":[0]}],"ix":1},"e":{"a":1,"k":[{"t":1,"s":[74],"h":1},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":3,"s":[74]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":7,"s":[83]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":8,"s":[85]},{"t":9,"s":[100]}],"ix":2},"o":{"a":1,"k":[{"t":1,"s":[122],"h":1},{"t":3,"s":[302],"h":1}],"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"gr","it":[{"ty":"fl","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":4,"x":"var $bm_rt;\n$bm_rt = comp('165-view-carousel-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":1,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false}],"ip":1,"op":12,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":".primary.design","cl":"primary design","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.25,"y":1},"o":{"x":0.333,"y":0},"t":1,"s":[364.587,250.003,0],"to":[-38.167,0,0],"ti":[38.167,0,0]},{"t":40,"s":[135.587,250.003,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[11.506,0],[0,0],[0,-11.506],[0,0],[-11.506,0],[0,0],[0,11.505],[0,0]],"o":[[0,0],[-11.506,0],[0,0],[0,11.505],[0,0],[11.506,0],[0,0],[0,-11.506]],"v":[[57.291,-109.376],[-57.291,-109.376],[-78.125,-88.542],[-78.125,88.542],[-57.291,109.376],[57.291,109.376],[78.125,88.542],[78.125,-88.542]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":3,"x":"var $bm_rt;\n$bm_rt = comp('165-view-carousel-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":31.3,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":1,"s":[26]},{"t":7,"s":[34],"h":1},{"t":8,"s":[50],"h":1},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":11,"s":[65]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":15,"s":[77]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":18,"s":[83]},{"t":19,"s":[100],"h":1},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":20,"s":[16]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":22,"s":[27.5]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":24,"s":[29]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":27,"s":[36]},{"t":28,"s":[50],"h":1},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":31,"s":[63]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":35,"s":[68]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":40,"s":[70]},{"t":55,"s":[73]}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":1,"s":[74]},{"t":7,"s":[65],"h":1},{"t":8,"s":[50],"h":1},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":11,"s":[35]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":15,"s":[21]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":18,"s":[14]},{"t":19,"s":[0],"h":1},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":20,"s":[81]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":22,"s":[73.5]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":24,"s":[70]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":27,"s":[63]},{"t":28,"s":[50],"h":1},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":31,"s":[35]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":35,"s":[32]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":40,"s":[27]},{"t":55,"s":[26]}],"ix":2},"o":{"a":1,"k":[{"t":1,"s":[121],"h":1},{"t":11,"s":[301],"h":1},{"t":20,"s":[121],"h":1},{"t":31,"s":[301],"h":1}],"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"gr","it":[{"ty":"fl","c":{"a":0,"k":[0.070588235294,0.074509803922,0.192156862745,1],"ix":4,"x":"var $bm_rt;\n$bm_rt = comp('165-view-carousel-outline').layer('Color & Stroke Change').effect('Primary')('Color');"},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":1,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false}],"ip":1,"op":55,"st":0,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"lordicon.com Outlines","cl":"com","sr":1,"ks":{"o":{"a":0,"k":20,"ix":11,"x":"var $bm_rt;\nvar checkbox = thisComp.layer('02092020').effect('02092020002')('Checkbox');\nif (checkbox == 1) {\n $bm_rt = 20;\n} else {\n $bm_rt = 0;\n}\n;"},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[249.934,481.369,0],"ix":2,"l":2},"a":{"a":0,"k":[79.934,0.369,0],"ix":1,"l":2},"s":{"a":0,"k":[265.159,265.159,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[1.415,0],[11.014,0],[11.014,-2.523],[4.656,-2.523],[4.656,-14.809],[1.415,-14.809]],"c":true},"ix":2},"nm":"l","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"l","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-3.938],[-1.62,-1.723],[-1.949,0],[-1.641,1.846],[0,2.154],[1.579,1.805],[1.579,0]],"o":[[0,1.354],[1.354,1.415],[1.231,0],[1.21,-1.354],[0,-1.456],[-1.456,-1.641],[-5.333,0]],"v":[[11.167,-7.199],[12.992,-1.661],[18.243,0.369],[23.514,-1.743],[25.381,-7.548],[23.494,-13.127],[18.284,-15.137]],"c":true},"ix":2},"nm":"o","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,1.415],[-0.841,1.026],[-1.19,0],[-0.615,-1.825],[0,-0.718],[0.492,-0.738],[1.292,0],[0.451,0.615]],"o":[[0,-1.682],[0.595,-0.759],[1.518,0],[0.308,0.902],[0,2.359],[-0.595,0.923],[-1.477,0],[-0.882,-1.149]],"v":[[14.49,-7.302],[15.577,-11.609],[18.305,-12.86],[21.689,-10.235],[22.058,-7.589],[21.053,-3.343],[18.284,-1.969],[15.597,-3.159]],"c":true},"ix":2},"nm":"o","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"o","np":5,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[-0.287,-0.841],[-0.144,-0.82],[0,0],[0.164,0.656],[0.226,1.743],[2.236,0.205],[0,2.769],[0.923,0.8],[1.641,-0.021],[0,0]],"o":[[0,0],[0,0],[0,0],[0.533,0],[0.205,0.574],[0,0],[-0.164,-0.246],[-0.103,-0.41],[-0.267,-1.928],[0.718,-0.205],[0,-0.964],[-1.19,-1.026],[0,0],[0,0]],"v":[[27.381,0],[30.622,0],[30.622,-5.989],[33.411,-5.989],[35.011,-5.148],[35.811,0],[39.318,0],[38.867,-1.067],[38.416,-3.938],[35.749,-7.343],[38.847,-10.973],[37.554,-13.824],[33.063,-14.829],[27.381,-14.829]],"c":true},"ix":2},"nm":"r","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-0.492,-0.349],[0,-1.005],[0.226,-0.164],[0.369,0],[0,0]],"o":[[0,0],[1.005,0],[0.287,0.185],[0,1.046],[-0.513,0.41],[0,0],[0,0]],"v":[[30.519,-12.491],[32.652,-12.491],[34.744,-12.142],[35.524,-10.481],[34.703,-8.758],[33.083,-8.348],[30.519,-8.348]],"c":true},"ix":2},"nm":"r","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"r","np":5,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-0.554,0.103],[0,4.553],[1.866,1.374],[0.82,0],[0,0]],"o":[[0,0],[1.497,0],[2.81,-0.513],[0,-2.113],[-1.784,-1.313],[0,0],[0,0]],"v":[[41.068,0],[45.683,0],[48.349,-0.164],[53.6,-7.609],[51.077,-13.434],[45.97,-14.768],[41.068,-14.788]],"c":true},"ix":2},"nm":"d","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[-0.656,-0.185],[0,-2.092],[1.251,-1.251],[1.354,0],[0.349,0.021]],"o":[[1.825,-0.082],[1.99,0.554],[0,0.718],[-0.923,0.923],[-0.369,0],[0,0]],"v":[[44.288,-12.388],[47.611,-12.183],[50.318,-7.609],[48.985,-3.425],[45.539,-2.4],[44.288,-2.441]],"c":true},"ix":2},"nm":"d","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"d","np":5,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[55.669,0],[58.849,0],[58.849,-14.87],[55.669,-14.87]],"c":true},"ix":2},"nm":"i","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"i","np":3,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[3.241,0],[0,-4.697],[-5.107,0],[-1.313,1.354],[-0.062,0.882],[0,0],[1.333,0],[0,0.882],[-2.359,0],[-0.062,-0.513]],"o":[[0,-2.954],[-4.164,0],[0,3.671],[1.354,0],[1.19,-1.231],[0,0],[-0.062,1.969],[-3.097,0],[0,-3.056],[2.154,0],[0,0]],"v":[[73.104,-9.989],[67.587,-14.911],[60.798,-7.097],[67.566,0.349],[71.894,-1.313],[73.227,-4.799],[69.884,-4.799],[67.218,-1.99],[64.121,-7.076],[67.464,-12.593],[69.864,-9.989]],"c":true},"ix":2},"nm":"c","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"c","np":3,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-3.938],[-1.62,-1.723],[-1.949,0],[-1.641,1.846],[0,2.154],[1.579,1.805],[1.579,0]],"o":[[0,1.354],[1.354,1.415],[1.231,0],[1.21,-1.354],[0,-1.456],[-1.456,-1.641],[-5.333,0]],"v":[[74.546,-7.199],[76.372,-1.661],[81.622,0.369],[86.894,-1.743],[88.76,-7.548],[86.873,-13.127],[81.663,-15.137]],"c":true},"ix":2},"nm":"o","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,1.415],[-0.841,1.026],[-1.19,0],[-0.615,-1.825],[0,-0.718],[0.492,-0.738],[1.292,0],[0.451,0.615]],"o":[[0,-1.682],[0.595,-0.759],[1.518,0],[0.308,0.902],[0,2.359],[-0.595,0.923],[-1.477,0],[-0.882,-1.149]],"v":[[77.869,-7.302],[78.956,-11.609],[81.684,-12.86],[85.068,-10.235],[85.437,-7.589],[84.432,-3.343],[81.663,-1.969],[78.977,-3.159]],"c":true},"ix":2},"nm":"o","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"o","np":5,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[91.007,0],[94.001,0],[94.001,-12.306],[99.744,0],[104.113,0],[104.113,-14.829],[101.159,-14.829],[101.159,-3.159],[95.601,-14.829],[91.007,-14.829]],"c":true},"ix":2},"nm":"n","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"n","np":3,"cix":2,"bm":0,"ix":8,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[106.893,0],[109.497,0],[109.497,-2.728],[106.893,-2.728]],"c":true},"ix":2},"nm":".","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":".","np":3,"cix":2,"bm":0,"ix":9,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[3.241,0],[0,-4.697],[-5.107,0],[-1.313,1.354],[-0.062,0.882],[0,0],[1.333,0],[0,0.882],[-2.359,0],[-0.062,-0.513]],"o":[[0,-2.954],[-4.164,0],[0,3.671],[1.354,0],[1.19,-1.231],[0,0],[-0.062,1.969],[-3.097,0],[0,-3.056],[2.154,0],[0,0]],"v":[[124.04,-9.989],[118.523,-14.911],[111.734,-7.097],[118.502,0.349],[122.83,-1.313],[124.163,-4.799],[120.82,-4.799],[118.154,-1.99],[115.057,-7.076],[118.4,-12.593],[120.8,-9.989]],"c":true},"ix":2},"nm":"c","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"c","np":3,"cix":2,"bm":0,"ix":10,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-3.938],[-1.62,-1.723],[-1.949,0],[-1.641,1.846],[0,2.154],[1.579,1.805],[1.579,0]],"o":[[0,1.354],[1.354,1.415],[1.231,0],[1.21,-1.354],[0,-1.456],[-1.456,-1.641],[-5.333,0]],"v":[[125.482,-7.199],[127.308,-1.661],[132.558,0.369],[137.829,-1.743],[139.696,-7.548],[137.809,-13.127],[132.599,-15.137]],"c":true},"ix":2},"nm":"o","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,1.415],[-0.841,1.026],[-1.19,0],[-0.615,-1.825],[0,-0.718],[0.492,-0.738],[1.292,0],[0.451,0.615]],"o":[[0,-1.682],[0.595,-0.759],[1.518,0],[0.308,0.902],[0,2.359],[-0.595,0.923],[-1.477,0],[-0.882,-1.149]],"v":[[128.805,-7.302],[129.892,-11.609],[132.62,-12.86],[136.004,-10.235],[136.373,-7.589],[135.368,-3.343],[132.599,-1.969],[129.912,-3.159]],"c":true},"ix":2},"nm":"o","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"o","np":5,"cix":2,"bm":0,"ix":11,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[141.696,0],[144.67,0],[144.67,-12.716],[148.629,0],[151.254,0],[155.295,-12.716],[155.295,0],[158.453,0],[158.453,-14.829],[153.408,-14.829],[150.024,-4.041],[146.885,-14.829],[141.696,-14.829]],"c":true},"ix":2},"nm":"m","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"m","np":3,"cix":2,"bm":0,"ix":12,"mn":"ADBE Vector Group","hd":false}],"ip":2.5,"op":25,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":3,"nm":"02092020","sr":1,"ks":{"o":{"a":0,"k":0,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-105,15,0],"ix":2,"l":2},"a":{"a":0,"k":[60,60,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"ef":[{"ty":5,"nm":"02092020002","np":3,"mn":"ADBE Checkbox Control","ix":1,"en":1,"ef":[{"ty":7,"nm":"Checkbox","mn":"ADBE Checkbox Control-0001","ix":1,"v":{"a":0,"k":0,"ix":1}}]}],"ip":0,"op":300,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":3,"nm":"Color & Stroke Change","sr":1,"ks":{"o":{"a":0,"k":0,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-55,-102,0],"ix":2,"l":2,"x":"var $bm_rt;\n$bm_rt = effect('Axis')('Point');"},"a":{"a":0,"k":[50,50,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2,"x":"var $bm_rt;\nvar temp;\ntemp = effect('Scale')('Slider');\n$bm_rt = [\n temp,\n temp\n];"}},"ao":0,"ef":[{"ty":5,"nm":"Primary","np":3,"mn":"ADBE Color Control","ix":1,"en":1,"ef":[{"ty":2,"nm":"Color","mn":"ADBE Color Control-0001","ix":1,"v":{"a":0,"k":[1,1,1],"ix":1}}]},{"ty":5,"nm":"Axis","np":3,"mn":"ADBE Point Control","ix":2,"en":1,"ef":[{"ty":3,"nm":"Point","mn":"ADBE Point Control-0001","ix":1,"v":{"a":0,"k":[250,250],"ix":1}}]},{"ty":5,"nm":"Scale","np":3,"mn":"ADBE Slider Control","ix":3,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":100,"ix":1}}]},{"ty":5,"nm":"State-Intro","np":3,"mn":"ADBE Slider Control","ix":4,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":0,"ix":1}}]},{"ty":5,"nm":"State-Hover","np":3,"mn":"ADBE Slider Control","ix":5,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":0,"k":1,"ix":1}}]}],"ip":0,"op":300,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":0,"nm":"in-carousel","parent":3,"refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11,"x":"var $bm_rt;\n$bm_rt = $bm_mul(thisComp.layer('Color & Stroke Change').effect('State-Intro')('Slider'), 100);"},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[50,50,0],"ix":2,"l":2},"a":{"a":0,"k":[250,250,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"w":500,"h":500,"ip":0,"op":71,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":0,"nm":"hover-carousel","parent":3,"refId":"comp_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11,"x":"var $bm_rt;\n$bm_rt = $bm_mul(thisComp.layer('Color & Stroke Change').effect('State-Hover')('Slider'), 100);"},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[50,50,0],"ix":2,"l":2},"a":{"a":0,"k":[250,250,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"w":500,"h":500,"ip":0,"op":71,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/frontend/src/components/basic/Layout.tsx b/frontend/src/components/basic/Layout.tsx deleted file mode 100644 index 5a73a29e4..000000000 --- a/frontend/src/components/basic/Layout.tsx +++ /dev/null @@ -1,385 +0,0 @@ -/* eslint-disable no-nested-ternary */ -/* eslint-disable no-unexpected-multiline */ -/* eslint-disable react-hooks/exhaustive-deps */ -import crypto from "crypto"; - -import { useEffect, useMemo, useState } from "react"; -import { useTranslation } from "react-i18next"; -import Link from "next/link"; -import { useRouter } from "next/router"; -import { - faBookOpen, - faFileLines, - faGear, - faKey, - faMobile, - faPlug, - faPlus, - faUser -} from "@fortawesome/free-solid-svg-icons"; -import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; - -import getOrganizations from "@app/pages/api/organization/getOrgs"; -import getOrganizationUserProjects from "@app/pages/api/organization/GetOrgUserProjects"; -import getOrganizationUsers from "@app/pages/api/organization/GetOrgUsers"; -import getUser from "@app/pages/api/user/getUser"; -import addUserToWorkspace from "@app/pages/api/workspace/addUserToWorkspace"; -import createWorkspace from "@app/pages/api/workspace/createWorkspace"; -import getWorkspaces from "@app/pages/api/workspace/getWorkspaces"; -import uploadKeys from "@app/pages/api/workspace/uploadKeys"; - -import NavBarDashboard from "../navigation/NavBarDashboard"; -import onboardingCheck from "../utilities/checks/OnboardingCheck"; -import { tempLocalStorage } from "../utilities/checks/tempLocalStorage"; -import { decryptAssymmetric, encryptAssymmetric } from "../utilities/cryptography/crypto"; -import Button from "./buttons/Button"; -import AddWorkspaceDialog from "./dialog/AddWorkspaceDialog"; -import Listbox from "./Listbox"; - -interface LayoutProps { - children: React.ReactNode; -} - -const Layout = ({ children }: LayoutProps) => { - const router = useRouter(); - const [workspaceMapping, setWorkspaceMapping] = useState[]>([]); - const [workspaceSelected, setWorkspaceSelected] = useState("∞"); - const [newWorkspaceName, setNewWorkspaceName] = useState(""); - const [isOpen, setIsOpen] = useState(false); - const [loading, setLoading] = useState(false); - const [error, setError] = useState(false); - const [totalOnboardingActionsDone, setTotalOnboardingActionsDone] = useState(0); - - const { t } = useTranslation(); - - const closeModal = () => { - setIsOpen(false); - }; - - const openModal = () => { - setIsOpen(true); - }; - - // TODO: what to do about the fact that 2ids can have the same name - - /** - * When a user creates a new workspace, redirect them to the page of the new workspace. - * @param {*} workspaceName - */ - const submitModal = async (workspaceName: string, addAllUsers: boolean) => { - setLoading(true); - // timeout code. - setTimeout(() => setLoading(false), 1500); - - try { - const workspaces = await getWorkspaces(); - const currentWorkspaces = workspaces.map((workspace) => workspace.name); - if (!currentWorkspaces.includes(workspaceName)) { - const newWorkspace = await createWorkspace({ - workspaceName, - organizationId: tempLocalStorage("orgData.id") - }); - const newWorkspaceId = newWorkspace._id; - - const randomBytes = crypto.randomBytes(16).toString("hex"); - const PRIVATE_KEY = String(localStorage.getItem("PRIVATE_KEY")); - - const myUser = await getUser(); - - const { ciphertext, nonce } = encryptAssymmetric({ - plaintext: randomBytes, - publicKey: myUser.publicKey, - privateKey: PRIVATE_KEY - }); - - await uploadKeys(newWorkspaceId, myUser._id, ciphertext, nonce); - - if (addAllUsers) { - console.log("adding other users"); - const orgUsers = await getOrganizationUsers({ - orgId: tempLocalStorage("orgData.id") - }); - orgUsers.map(async (user: any) => { - if (user.status === "accepted" && user.email !== myUser.email) { - const result = await addUserToWorkspace(user.user.email, newWorkspaceId); - if (result?.invitee && result?.latestKey) { - const TEMP_PRIVATE_KEY = tempLocalStorage("PRIVATE_KEY"); - - // assymmetrically decrypt symmetric key with local private key - const key = decryptAssymmetric({ - ciphertext: result.latestKey.encryptedKey, - nonce: result.latestKey.nonce, - publicKey: result.latestKey.sender.publicKey, - privateKey: TEMP_PRIVATE_KEY - }); - - const { ciphertext: inviteeCipherText, nonce: inviteeNonce } = encryptAssymmetric({ - plaintext: key, - publicKey: result.invitee.publicKey, - privateKey: PRIVATE_KEY - }); - - uploadKeys(newWorkspaceId, result.invitee._id, inviteeCipherText, inviteeNonce); - } - } - }); - } - setWorkspaceMapping((prevState) => ({ - ...prevState, - [workspaceName]: newWorkspaceId - })); - setWorkspaceSelected(workspaceName); - setIsOpen(false); - setNewWorkspaceName(""); - } else { - console.error("A project with this name already exists."); - setError(true); - setLoading(false); - } - } catch (err) { - console.error(err); - setError(true); - setLoading(false); - } - }; - - const menuItems = useMemo( - () => [ - { - href: `/dashboard/${workspaceMapping[workspaceSelected as any]}`, - title: t("nav.menu.secrets"), - emoji: - }, - { - href: `/users/${workspaceMapping[workspaceSelected as any]}`, - title: t("nav.menu.members"), - emoji: - }, - { - href: `/integrations/${workspaceMapping[workspaceSelected as any]}`, - title: t("nav.menu.integrations"), - emoji: - }, - { - href: `/activity/${workspaceMapping[workspaceSelected as any]}`, - title: "Audit Logs", - emoji: - }, - { - href: `/settings/project/${workspaceMapping[workspaceSelected as any]}`, - title: t("nav.menu.project-settings"), - emoji: - } - ], - [t, workspaceMapping, workspaceSelected] - ); - - useEffect(() => { - // Put a user in a workspace if they're not in one yet - - const putUserInWorkSpace = async () => { - if (tempLocalStorage("orgData.id") === "") { - const userOrgs = await getOrganizations(); - localStorage.setItem("orgData.id", userOrgs[0]._id); - } - - const orgUserProjects = await getOrganizationUserProjects({ - orgId: tempLocalStorage("orgData.id") - }); - const userWorkspaces = orgUserProjects; - if ( - (userWorkspaces.length === 0 && - router.asPath !== "/noprojects" && - !router.asPath.includes("home") && - !router.asPath.includes("settings")) || - router.asPath === "/dashboard/undefined" - ) { - router.push("/noprojects"); - } else if (router.asPath !== "/noprojects") { - const intendedWorkspaceId = router.asPath - .split("/") - [router.asPath.split("/").length - 1].split("?")[0]; - - if (!["callback", "create", "authorize"].includes(intendedWorkspaceId)) { - localStorage.setItem("projectData.id", intendedWorkspaceId); - } - - // If a user is not a member of a workspace they are trying to access, just push them to one of theirs - if ( - !["callback", "create", "authorize"].includes(intendedWorkspaceId) && - !userWorkspaces - .map((workspace: { _id: string }) => workspace._id) - .includes(intendedWorkspaceId) - ) { - router.push(`/dashboard/${userWorkspaces[0]._id}`); - } else { - setWorkspaceMapping( - Object.fromEntries( - userWorkspaces.map((workspace: any) => [workspace.name, workspace._id]) - ) as any - ); - setWorkspaceSelected( - Object.fromEntries( - userWorkspaces.map((workspace: any) => [workspace._id, workspace.name]) - )[router.asPath.split("/")[router.asPath.split("/").length - 1].split("?")[0]] - ); - } - } - }; - putUserInWorkSpace(); - onboardingCheck({ setTotalOnboardingActionsDone }); - }, [router.query.id]); - - useEffect(() => { - try { - if ( - workspaceMapping[workspaceSelected as any] && - `${workspaceMapping[workspaceSelected as any]}` !== - router.asPath.split("/")[router.asPath.split("/").length - 1].split("?")[0] - ) { - localStorage.setItem("projectData.id", `${workspaceMapping[workspaceSelected as any]}`); - router.push(`/dashboard/${workspaceMapping[workspaceSelected as any]}`); - } - } catch (err) { - console.log(err); - } - }, [workspaceSelected]); - - return ( - <> -
      - -
      - - -
      {children}
      -
      -
      -
      - -

      - {` ${t("common.no-mobile")} `} -

      -
      - - ); -}; - -export default Layout; diff --git a/frontend/src/components/dashboard/DropZone.tsx b/frontend/src/components/dashboard/DropZone.tsx index 93edd35b8..fdf3b1cbe 100644 --- a/frontend/src/components/dashboard/DropZone.tsx +++ b/frontend/src/components/dashboard/DropZone.tsx @@ -182,7 +182,7 @@ const DropZone = ({ return loading ? (
      - google logo + loading animation
      ) : keysExist ? (
      void; - password: string; - setPassword: (password: string) => void; - setStep: (step: number) => void; -}) { - const router = useRouter(); - const [isLoading, setIsLoading] = useState(false); - const [loginError, setLoginError] = useState(false); - - const { t } = useTranslation(); - - const handleLogin = async () => { - try { - if (!email || !password) { - return; - } - - setIsLoading(true); - const isLoginSuccessful = await attemptLogin({ - email, - password, - }); - if (isLoginSuccessful && isLoginSuccessful.success) { - // case: login was successful - - if (isLoginSuccessful.mfaEnabled) { - // case: login requires MFA step - setStep(2); - setIsLoading(false); - return; - } - - // case: login does not require MFA step - router.push(`/dashboard/${localStorage.getItem("projectData.id")}`); - } - - } catch (err) { - setLoginError(true); - } - - setIsLoading(false); - } - - return ( -
      e.preventDefault()}> -
      -

      - {t("login.login")} -

      -
      - setEmail(e.target.value)} - type="email" - placeholder="Enter your email..." - isRequired - autoComplete="username" - className="h-12" - /> -
      -
      -
      - setPassword(e.target.value)} - type="password" - placeholder="Enter your password..." - isRequired - autoComplete="current-password" - id="current-password" - className="h-12" - /> -
      -
      - {!isLoading && loginError && } -
      -
      - -
      -
      -
      -
      - - {t("login.forgot-password")} - -
      - {false && ( -
      - - {t("common.maintenance-alert")} -
      - )} -
      - ); -} diff --git a/frontend/src/components/login/MFAStep.tsx b/frontend/src/components/login/MFAStep.tsx index 2408ad0b1..d75442d8e 100644 --- a/frontend/src/components/login/MFAStep.tsx +++ b/frontend/src/components/login/MFAStep.tsx @@ -8,6 +8,7 @@ import axios from "axios" import attemptCliLoginMfa from "@app/components/utilities/attemptCliLoginMfa" import attemptLoginMfa from "@app/components/utilities/attemptLoginMfa"; import { useSendMfaToken } from "@app/hooks/api/auth"; +import getOrganizations from "@app/pages/api/organization/getOrgs"; import Error from "../basic/Error"; import { Button } from "../v2"; @@ -101,7 +102,7 @@ export default function MFAStep({ // cli page router.push("/cli-redirect"); } - }else{ + } else { const isLoginSuccessful = await attemptLoginMfa({ email, password, @@ -111,7 +112,11 @@ export default function MFAStep({ if (isLoginSuccessful) { setIsLoading(false); - router.push(`/dashboard/${localStorage.getItem("projectData.id")}`); + const userOrgs = await getOrganizations(); + const userOrg = userOrgs[0] && userOrgs[0]._id; + + // case: login does not require MFA step + router.push(`/org/${userOrg}/overview`); } } @@ -180,6 +185,7 @@ export default function MFAStep({ className='h-14' colorSchema="primary" variant="outline_bg" + isLoading={isLoading} > {String(t("mfa.verify"))}
    @@ -187,7 +193,7 @@ export default function MFAStep({
    {t("signup.step2-resend-alert")}
    - - -
    - {orgs?.length > 1 && ( -
    -
    - {t("nav.user.other-organizations")} -
    -
    - {orgs - .filter( - (org: { _id: string }) => org._id !== localStorage.getItem("orgData.id") - ) - .map((org: { _id: string; name: string }) => ( -
    null} - role="button" - tabIndex={0} - key={guidGenerator()} - onClick={() => { - localStorage.setItem("orgData.id", org._id); - router.reload(); - }} - className="flex flex-row justify-start items-center hover:bg-white/5 w-full p-1.5 cursor-pointer rounded-md" - > -
    - {org.name.charAt(0)} -
    -
    -

    {org.name}

    -
    -
    - ))} -
    -
    - )} -
    - - {({ active }) => ( - - )} - -
    - - - -
    -
    - ); -} diff --git a/frontend/src/components/navigation/NavHeader.tsx b/frontend/src/components/navigation/NavHeader.tsx index 4bbdce1bc..fac8f4749 100644 --- a/frontend/src/components/navigation/NavHeader.tsx +++ b/frontend/src/components/navigation/NavHeader.tsx @@ -58,10 +58,16 @@ export default function NavHeader({ return (
    -
    +
    {currentOrg?.name?.charAt(0)}
    -
    {currentOrg?.name}
    + + {currentOrg?.name} + {isProjectRelated && ( <> @@ -79,7 +85,7 @@ export default function NavHeader({ {pageName} @@ -120,7 +126,7 @@ export default function NavHeader({ {index + 1 === folders?.length ? ( {name} ) : ( - + {name === "root" ? selectedEnv?.name : name} diff --git a/frontend/src/components/signup/TeamInviteStep.tsx b/frontend/src/components/signup/TeamInviteStep.tsx index c5fc30f75..b53532c4f 100644 --- a/frontend/src/components/signup/TeamInviteStep.tsx +++ b/frontend/src/components/signup/TeamInviteStep.tsx @@ -5,7 +5,7 @@ import { useRouter } from "next/router"; import { useFetchServerStatus } from "@app/hooks/api/serverDetails"; import { usePopUp } from "@app/hooks/usePopUp"; import addUserToOrg from "@app/pages/api/organization/addUserToOrg"; -import getWorkspaces from "@app/pages/api/workspace/getWorkspaces"; +import getOrganizations from "@app/pages/api/organization/getOrgs"; import { Button, EmailServiceSetupModal } from "../v2"; @@ -21,9 +21,9 @@ export default function TeamInviteStep(): JSX.Element { // Redirect user to the getting started page const redirectToHome = async () => { - const userWorkspaces = await getWorkspaces(); - const userWorkspace = userWorkspaces[0]._id; - router.push(`/dashboard/${userWorkspace}`); + const userOrgs = await getOrganizations(); + const userOrg = userOrgs[0]._id; + router.push(`/org/${userOrg?._id}/overview`); }; const inviteUsers = async ({ emails: inviteEmails }: { emails: string }) => { diff --git a/frontend/src/components/utilities/checks/OnboardingCheck.ts b/frontend/src/components/utilities/checks/OnboardingCheck.ts index 1ac367045..20bb1cd78 100644 --- a/frontend/src/components/utilities/checks/OnboardingCheck.ts +++ b/frontend/src/components/utilities/checks/OnboardingCheck.ts @@ -5,7 +5,6 @@ interface OnboardingCheckProps { setTotalOnboardingActionsDone?: (value: number) => void; setHasUserClickedSlack?: (value: boolean) => void; setHasUserClickedIntro?: (value: boolean) => void; - setHasUserStarred?: (value: boolean) => void; setHasUserPushedSecrets?: (value: boolean) => void; setUsersInOrg?: (value: boolean) => void; } @@ -17,7 +16,6 @@ const onboardingCheck = async ({ setTotalOnboardingActionsDone, setHasUserClickedSlack, setHasUserClickedIntro, - setHasUserStarred, setHasUserPushedSecrets, setUsersInOrg }: OnboardingCheckProps) => { @@ -46,14 +44,6 @@ const onboardingCheck = async ({ } if (setHasUserClickedIntro) setHasUserClickedIntro(!!userActionIntro); - const userActionStar = await checkUserAction({ - action: "star_cta_clicked" - }); - if (userActionStar) { - countActions += 1; - } - if (setHasUserStarred) setHasUserStarred(!!userActionStar); - const orgId = localStorage.getItem("orgData.id"); const orgUsers = await getOrganizationUsers({ orgId: orgId || "" diff --git a/frontend/src/components/utilities/intercom/intercom.ts b/frontend/src/components/utilities/intercom/intercom.ts index cea69edd7..94079bc2b 100644 --- a/frontend/src/components/utilities/intercom/intercom.ts +++ b/frontend/src/components/utilities/intercom/intercom.ts @@ -54,7 +54,6 @@ export const load = () => { // Initializes Intercom export const boot = (options = {}) => { - console.log("boot", { app_id: APP_ID, ...options }) window && window.Intercom && window.Intercom("boot", { app_id: APP_ID, ...options }); diff --git a/frontend/src/components/v2/Dropdown/Dropdown.tsx b/frontend/src/components/v2/Dropdown/Dropdown.tsx index a9292d8b7..cf53714c3 100644 --- a/frontend/src/components/v2/Dropdown/Dropdown.tsx +++ b/frontend/src/components/v2/Dropdown/Dropdown.tsx @@ -21,7 +21,7 @@ export const DropdownMenuContent = forwardRef @@ -62,7 +62,7 @@ export const DropdownMenuItem = ({ diff --git a/frontend/src/components/v2/Menu/Menu.tsx b/frontend/src/components/v2/Menu/Menu.tsx index 87ef29b5c..d56d16fec 100644 --- a/frontend/src/components/v2/Menu/Menu.tsx +++ b/frontend/src/components/v2/Menu/Menu.tsx @@ -56,7 +56,7 @@ export const MenuItem = ({ > -
    +
    {/* {icon && {icon}} */} ({ ) }; +export const SubMenuItem = ({ + children, + icon, + className, + isDisabled, + isSelected, + as: Item = "button", + description, + // wrapping in forward ref with generic component causes the loss of ts definitions on props + inputRef, + ...props +}: MenuItemProps & ComponentPropsWithRef): JSX.Element => { + const iconRef = useRef() + + return( + iconRef.current?.play()} + onMouseLeave={() => iconRef.current?.stop()} + > +
  • + + + + {children} + + {description && {description}} + +
  • + + ) +}; + + MenuItem.displayName = "MenuItem"; export type MenuGroupProps = { diff --git a/frontend/src/ee/components/ActivitySideBar.tsx b/frontend/src/ee/components/ActivitySideBar.tsx index 3ba01c6d9..274704f06 100644 --- a/frontend/src/ee/components/ActivitySideBar.tsx +++ b/frontend/src/ee/components/ActivitySideBar.tsx @@ -129,7 +129,7 @@ const ActivitySideBar = ({ toggleSidebar, currentAction }: SideBarProps) => {
    {isLoading ? (
    diff --git a/frontend/src/layouts/AppLayout/AppLayout.tsx b/frontend/src/layouts/AppLayout/AppLayout.tsx index 50422864f..05c1c1532 100644 --- a/frontend/src/layouts/AppLayout/AppLayout.tsx +++ b/frontend/src/layouts/AppLayout/AppLayout.tsx @@ -10,12 +10,14 @@ import crypto from "crypto"; import { useEffect, useState } from "react"; import { Controller, useForm } from "react-hook-form"; import { useTranslation } from "react-i18next"; +import Image from "next/image"; import Link from "next/link"; import { useRouter } from "next/router"; -import { faAngleDown, faBookOpen, faMobile, faPlus, faQuestion } from "@fortawesome/free-solid-svg-icons"; +import { faGithub, faSlack } from "@fortawesome/free-brands-svg-icons"; +import { faAngleDown, faArrowLeft, faArrowUpRightFromSquare, faBook, faCheck, faEnvelope, faMobile, faPlus, faQuestion } from "@fortawesome/free-solid-svg-icons"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { yupResolver } from "@hookform/resolvers/yup"; -import queryString from "query-string"; +import { DropdownMenuTrigger } from "@radix-ui/react-dropdown-menu"; import * as yup from "yup"; import { useNotificationContext } from "@app/components/context/Notifications/NotificationProvider"; @@ -25,6 +27,9 @@ import { encryptAssymmetric } from "@app/components/utilities/cryptography/crypt import { Button, Checkbox, + DropdownMenu, + DropdownMenuContent, + DropdownMenuItem, FormControl, Input, Menu, @@ -37,16 +42,35 @@ import { } from "@app/components/v2"; import { useOrganization, useSubscription, useUser, useWorkspace } from "@app/context"; import { usePopUp } from "@app/hooks"; -import { fetchOrgUsers, useAddUserToWs, useCreateWorkspace, useUploadWsKey } from "@app/hooks/api"; -import getOrganizations from "@app/pages/api/organization/getOrgs"; -import getOrganizationUserProjects from "@app/pages/api/organization/GetOrgUserProjects"; - -import { Navbar } from "./components/NavBar"; +import { fetchOrgUsers, useAddUserToWs, useCreateWorkspace, useLogoutUser, useUploadWsKey } from "@app/hooks/api"; interface LayoutProps { children: React.ReactNode; } +const supportOptions = [ + [ + , + "Support Forum", + "https://infisical.com/slack" + ], + [ + , + "Read Docs", + "https://infisical.com/docs/documentation/getting-started/introduction" + ], + [ + , + "GitHub Issues", + "https://github.com/Infisical/infisical/issues" + ], + [ + , + "Email Support", + "mailto:support@infisical.com" + ] +]; + const formSchema = yup.object({ name: yup.string().required().label("Project Name").trim(), addMembers: yup.bool().required().label("Add Members") @@ -60,9 +84,10 @@ export const AppLayout = ({ children }: LayoutProps) => { // eslint-disable-next-line prefer-const const { workspaces, currentWorkspace } = useWorkspace(); - const { currentOrg } = useOrganization(); + const { orgs, currentOrg } = useOrganization(); const { user } = useUser(); const { subscription } = useSubscription(); + const [ isLearningNoteOpen, setIsLearningNoteOpen ] = useState(true); const isAddingProjectsAllowed = subscription?.workspaceLimit ? (subscription.workspacesUsed < subscription.workspaceLimit) : true; @@ -83,10 +108,6 @@ export const AppLayout = ({ children }: LayoutProps) => { resolver: yupResolver(formSchema) }); - const [workspaceMapping, setWorkspaceMapping] = useState[]>([]); - const [workspaceSelected, setWorkspaceSelected] = useState("∞"); - const [totalOnboardingActionsDone, setTotalOnboardingActionsDone] = useState(0); - const { t } = useTranslation(); useEffect(() => { @@ -101,111 +122,71 @@ export const AppLayout = ({ children }: LayoutProps) => { }; }, []); + const logout = useLogoutUser(); + const logOutUser = async () => { + try { + console.log("Logging out...") + await logout.mutateAsync(); + localStorage.removeItem("protectedKey"); + localStorage.removeItem("protectedKeyIV"); + localStorage.removeItem("protectedKeyTag"); + localStorage.removeItem("publicKey"); + localStorage.removeItem("encryptedPrivateKey"); + localStorage.removeItem("iv"); + localStorage.removeItem("tag"); + localStorage.removeItem("PRIVATE_KEY"); + localStorage.removeItem("orgData.id"); + localStorage.removeItem("projectData.id"); + router.push("/login"); + } catch (error) { + console.error(error); + } + }; + // TODO(akhilmhdh): This entire logic will be rechecked and will try to avoid // Placing the localstorage as much as possible // Wait till tony integrates the azure and its launched useEffect(() => { - // Put a user in a workspace if they're not in one yet - const putUserInWorkSpace = async () => { + // Put a user in an org if they're not in one yet + const putUserInOrg = async () => { if (tempLocalStorage("orgData.id") === "") { - const userOrgs = await getOrganizations(); - localStorage.setItem("orgData.id", userOrgs[0]?._id); + localStorage.setItem("orgData.id", orgs[0]?._id); } - const orgUserProjects = await getOrganizationUserProjects({ - orgId: tempLocalStorage("orgData.id") - }); - const userWorkspaces = orgUserProjects; - if ( - (userWorkspaces?.length === 0 && - router.asPath !== "/noprojects" && - !router.asPath.includes("home") && - !router.asPath.includes("settings")) || - router.asPath === "/dashboard/undefined" - ) { - router.push("/noprojects"); - } else if (router.asPath !== "/noprojects") { - // const pathSegments = router.asPath.split('/').filter(segment => segment.length > 0); + if (currentOrg && ( + (workspaces?.length === 0 && !router.asPath.includes("org") && !router.asPath.includes("personal") && !router.asPath.includes("integration")) + || router.asPath.includes("/project/undefined") + || !orgs?.includes(router.query.id) + )) { + router.push(`/org/${currentOrg?._id}/overview`); + } + // else if (!router.asPath.includes("org") && !router.asPath.includes("project") && !router.asPath.includes("integrations") && !router.asPath.includes("personal-settings")) { - // let intendedWorkspaceId; - // if (pathSegments.length >= 2 && pathSegments[0] === 'dashboard') { - // intendedWorkspaceId = pathSegments[1]; - // } else if (pathSegments.length >= 3 && pathSegments[0] === 'settings') { - // intendedWorkspaceId = pathSegments[2]; - // } else { - // intendedWorkspaceId = router.asPath - // .split('/') - // [router.asPath.split('/').length - 1].split('?')[0]; - // } + // const pathSegments = router.asPath.split("/").filter((segment) => segment.length > 0); - const pathSegments = router.asPath.split("/").filter((segment) => segment.length > 0); + // let intendedWorkspaceId; + // if (pathSegments.length >= 2 && pathSegments[0] === "dashboard") { + // [, intendedWorkspaceId] = pathSegments; + // } else if (pathSegments.length >= 3 && pathSegments[0] === "settings") { + // [, , intendedWorkspaceId] = pathSegments; + // } else { + // const lastPathSegments = router.asPath.split("/").pop(); + // if (lastPathSegments !== undefined) { + // [intendedWorkspaceId] = lastPathSegments.split("?"); + // } + // } - let intendedWorkspaceId; - if (pathSegments.length >= 2 && pathSegments[0] === "dashboard") { - [, intendedWorkspaceId] = pathSegments; - } else if (pathSegments.length >= 3 && pathSegments[0] === "settings") { - [, , intendedWorkspaceId] = pathSegments; - } else { - const lastPathSegments = router.asPath.split("/").pop(); - if (lastPathSegments !== undefined) { - [intendedWorkspaceId] = lastPathSegments.split("?"); - } + // if (!intendedWorkspaceId) return; - // const lastPathSegment = router.asPath.split('/').pop().split('?'); - // [intendedWorkspaceId] = lastPathSegment; - } - - if (!intendedWorkspaceId) return; - - if (!["callback", "create", "authorize"].includes(intendedWorkspaceId)) { - localStorage.setItem("projectData.id", intendedWorkspaceId); - } - - // If a user is not a member of a workspace they are trying to access, just push them to one of theirs - if ( - !["callback", "create", "authorize"].includes(intendedWorkspaceId) && - userWorkspaces[0]?._id !== undefined && - !userWorkspaces - .map((workspace: { _id: string }) => workspace._id) - .includes(intendedWorkspaceId) - ) { - const { env } = queryString.parse(router.asPath.split("?")[1]); - if (!env) { - router.push(`/dashboard/${userWorkspaces[0]._id}`); - } - } else { - setWorkspaceMapping( - Object.fromEntries( - userWorkspaces.map((workspace: any) => [workspace.name, workspace._id]) - ) as any - ); - setWorkspaceSelected( - Object.fromEntries( - userWorkspaces.map((workspace: any) => [workspace._id, workspace.name]) - )[router.asPath.split("/")[router.asPath.split("/").length - 1].split("?")[0]] - ); - } - } + // if (!["callback", "create", "authorize"].includes(intendedWorkspaceId)) { + // localStorage.setItem("projectData.id", intendedWorkspaceId); + // } + // } }; - putUserInWorkSpace(); - onboardingCheck({ setTotalOnboardingActionsDone }); - }, [router.query.id]); - - useEffect(() => { - try { - if ( - workspaceMapping[workspaceSelected as any] && - `${workspaceMapping[workspaceSelected as any]}` !== - router.asPath.split("/")[router.asPath.split("/").length - 1].split("?")[0] - ) { - localStorage.setItem("projectData.id", `${workspaceMapping[workspaceSelected as any]}`); - router.push(`/dashboard/${workspaceMapping[workspaceSelected as any]}`); - } - } catch (err) { - console.log(err); - } - }, [workspaceSelected]); + putUserInOrg(); + onboardingCheck({}); + }, [currentOrg]); const onCreateProject = async ({ name, addMembers }: TAddProjectFormData) => { // type check @@ -247,7 +228,7 @@ export const AppLayout = ({ children }: LayoutProps) => { } createNotification({ text: "Workspace created", type: "success" }); handlePopUpClose("addNewWs"); - router.push(`/dashboard/${newWorkspaceId}`); + router.push(`/project/${newWorkspaceId}/secrets`); } catch (err) { console.error(err); createNotification({ text: "Failed to create workspace", type: "error" }); @@ -257,20 +238,74 @@ export const AppLayout = ({ children }: LayoutProps) => { return ( <>
    - {/* */}
    -